前回はハローワールドを作ってみたが、今回はWindowにプッシュボタンをつけてみる。入門Qtプログラミングで2番目の例になる。
- #include <QApplication>
- #include <QPushButton>
- int main(int argc, char* argv[])
- {
- QApplication app(argc, argv);
- QPushButton *btn = new QPushButton("Quit");
- QObject::connect(btn, SIGNAL(clicked()),
- &app, SLOT(quit()));
- btn->show();
- return app.exec();
- }
メインウィンドウとなるWidgetのインスタンスを生成した後に、シグナルとスロットというやつを設定すればいいらしい。上の例では"clicked()"という関数がシグナルで"quit()"という関数がスロットになるようだ。"Object::connet"をつかって、"発信元, SIGNAL(イベント), 受信先, SLOT(アクション)"と引数を与えればいい。要はシグナルがイベントでスロットが対応するアクションになるとということ。GUIフレームワークで一般的になっている作りだと思う。うるおぼえだが、cocoaやwxwidgetなんかもこんな感じだった気がする。発信元がSIGNALするとき、受信先はSLOTするという書き方なのですんなり理解できる形だと思う。
$ qmake -project $ qmake -spec macx-g++ $ make
とすると実行ファイルができる。実行したところはこんな感じ。
やはりWidgetが一つだけだと寂しい出来になってしまう。