ユーザーインターフェイスのデザイン
ここでは次のようなユーザーインターフェイスを作成します。
プロジェクトナビゲーターからtextfinder.uiというファイルをダブルクリックするとQtDesignerが立ち上がり、何も配置されていないフォームが表示されるので、そのフォームに次のWidgetをドラック&ドロップで配置します。
* Label
* Line Edit
* Push Button
LabelをダブルクリックしてKeywordと入力します。同じく、Push ButtonもFindと入力します。
その後、ボタンを選択した状態でQtCreatorの右下にあるプロパティからobjectNameをfindButtonに変更しておきます。
Ctrl+Aで配置したWidgetをすべて選択して、ツールバーにある水平に並べるボタンを押すと、次のように配置したWidgetがきれいに横に配置されます。
次に、TextEditをドラック&ドロップしてフォームに配置します。
今度はフォームを選択した状態で、ツールバーにある垂直に並べるボタンを押します。
すると、次のようにきれいに配置されます。
ユーザーインターフェイスとその実装クラスをマッピング
QtCreatorが生成したtextfinder.hは次のようになっていると思います。
namespace Ui {
class TextFinder;
}
class TextFinder : public QWidget
{
Q_OBJECT
public:
explicit TextFinder(QWidget *parent = 0);
~TextFinder();
private:
Ui::TextFinder *ui;
};
このTextFinderクラスとユーザーインターフェイスをマッピングするため、フォームを選択してobjectNameプロパティをTextFinderに設定します。
ハンドラーの追加
最後にFindボタンが押された際のハンドラーを設定します。
ハンドラーはQtのスロットとシグナルの仕組みが使用されます。
Findボタンの右クリックメニューにスロットへ移動というのがありますので、これを選択します。
シグナルを選択で、clicked()を選択してOKボタンを押します。
これで次のようにTextFinderクラスにスロットが追加されているはずです。
namespace Ui {
class TextFinder;
}
class TextFinder : public QWidget
{
Q_OBJECT
public:
explicit TextFinder(QWidget *parent = 0);
~TextFinder();
private slots:
void on_findButton_clicked();
private:
Ui::TextFinder *ui;
};
次はTextFinderクラスの実装を行っていきます。