bambooflow Note

Designerを使う

最終更新:

bambooflow

- view
メンバー限定 登録/ログイン

Qt4でDesignerを使う


Qt3からQt4に移行するとき、Designerの使いかたが変わってしまって戸惑いました。
Qt4でのDesignerの使いかたをメモしておきます。


サンプルイメージ



作成するファイル

次のファイルを準備すればサンプルイメージのものを作成することができます。
form01.ui Designerで作成
form01.h 手書きで作成
main.cpp 手書きで作成

gui_test01ディレクトリを用意して、その中にファイルを置きます。
(デフォルトでは、ディレクトリ名が実行ファイル名となります。)


Designerでform01.ui作成

Qt-Designerを立ち上げます。
$ designer&

  1. ファイル->新しいフォーム->Widgetを選択
    1. オブジェクト名を"Form01"にします。
  2. Form01にアイテムを配置します。
    1. Labelを配置します。
      1. オブジェクト名を"showLabel"とします。
    2. Push Buttonを配置します。
      1. オブジェクト名を"showBtn"とします。
      2. テキストを"表示"とします。
    3. Push Buttonを配置します。
      1. オブジェクト名を"exitBtn"とします。
      2. テキストを"閉じる"とします。
    4. exitBtnのClockedシグナルとForm01のcloseスロットを接続します。(下図参照)
  3. フォームを名前"form01.ui"とつけて保存。


手書きファイル準備

form01.h


#ifndef __FORM01_H_
#define __FORM01_H_
 
#include <QMainWindow>
#include <QWidget>
#include "ui_form01.h"
 
class Form01 : public QWidget, private Ui::Form01
{
    Q_OBJECT
 
public:
    Form01(QWidget *parent=0)
        : QWidget( parent )
        //: Ui_Form01( parent )
    {
        setupUi(this);
 
        QObject::connect(showBtn, SIGNAL(clicked()), this, SLOT(slot_showHello()));
    }
 
private slots:
    void slot_showHello() {
        showLabel->setText("Hello!!!");
    }
};
 
#endif /* __FORM01_H_ */
 
ほんとは、.hと.cppを用意した方がよいですが、ここでは簡易的に.hのみにしました。


main.cpp


#include <QApplication>
#include "form01.h"
 
int main( int argc, char* argv[] )
{
    QApplication myapp( argc, argv );
 
    Form01 *form = new Form01( 0 );
 
    form->show();
 
    return myapp.exec();
}
 

コンパイル・実行手順

ファイルのあるところに移動します。
$ cd gui_test01
そして、次を順に実行します。
$ qmake -project
$ qmake
$ make

qmake -projectでプロジェクトファイル(.pro)が生成されます。
qmakeで"Makefile"を生成します。
makeで.uiファイルからmoc_xxx.hとui_xxx.hファイルを生成後、実行ファイルを生成します。

実行ファイルを実行します。
$ ./gui_test01


まとめ

Designerで作成できるのはフォームの形成と簡単なシグナル-スロット接続のみ。
基本的には、main.cppファイルやユーザ定義のWidgetの中身は手書きになります。
それ以外のMakefile等の環境は自動的に生成されます。

とりあえず、これだけメモしておけば、次立ち上げのとき楽になるはず。

タグ:

Qt Qt4 Designer
記事メニュー
目安箱バナー