ホーム

OFF-SOFT.net

OFF-SOFT.net

ウェブやソフトウェアに関するサポート&情報サイトです。サイト構築からソフトウェアの作成、利用まであなたの助けになるかも・・・・しれません。たぶん・・。

Qt (3) QtDesignerとuiファイルを調べる

公開日| 2009年05月22日 | コメントはまだありません。
uiファイルをそのまま使う
最後にuiファイルをそのまま使ってみましょう。

先で作成したクラスをそのまま流用します。

  • sample.cpp
    -- mainルーチンです。
  • mainwindow.h
    -- QWidget継承クラスヘッダです。
  • mainwindow.cpp
    -- QWidget継承クラスソースです。

では、それぞれのソースコードを見てみましょう。

[mainwindow.h]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
 
#include <QtGui>
 
#ifndef _DEBUG
#pragma comment(lib, "QtUiTools.lib")
#else
#pragma comment(lib, "QtUiToolsd.lib")
#endif
 
class MainWindow : public QWidget
{
	Q_OBJECT
 
public:
	MainWindow();
 
private slots:
    void on_pushButton_clicked();
 
};
#endif
6 - 10行目は、uiファイルを読み込むためのクラスライブラリを指定しています。
既に、記述しているライブラリが環境に設定してあれば不要です。

当然ですが、前回分には、"Ui::Form ui;"がありましたが、今回は、ありません。

[mainwindow.cpp]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include "QMessageBox"
#include "mainwindow.h"
#include "QFile"
#include "QtUiTools/QUiLoader"
 
MainWindow::MainWindow()
{
	QUiLoader oloader;
 
	QFile ofile("test.ui");
	ofile.open(QFile::ReadOnly);
 
	QWidget *widget = oloader.load(&ofile, this);
	ofile.close();
 
	QPushButton* ui_findButton = qFindChild<QPushButton*>(widget, "pushButton");
 
	if(ui_findButton!=NULL){
		connect(ui_findButton, SIGNAL(clicked()), 
		        this, SLOT(on_pushButton_clicked()));
	} else {
		QMessageBox::information (NULL,"Nothing","Nothing pushButton.");
	}
 
    setWindowTitle(tr("SampleWindow"));
 
}
 
void MainWindow::on_pushButton_clicked()
{
	QMessageBox::information (NULL,"Click","Click Click!!");
}
10 - 23行目で、uiファイルを読み込み、"pushButton"オブジェクトのクリックシグナルとダイレクトにon_pushButton_clickedスロットを 定義しています。
当然ですが、Auto-onnectは、今回は、使えません。
※Auto-onnect:名前の定義だけでコネクトを自動で実施すること。


[mainwindow.cpp]
1
2
3
4
5
6
7
8
9
10
11
#include <QApplication>
 
#include "mainwindow.h"
 
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    MainWindow mainWin;
    mainWin.show();
    return app.exec();
}

ここは、説明は必要ないかと思います。単純にアプリケーションを作って、画面を作って表示だけです。

さあ、実行してみましょう。
※test.uiファイルを実行ファイルと同じディレクトリへコピーして実行してください。

以下のように、メッセージボックスが表示したと思います。



いかがだったでしょうか。 今回の記事は、一部のソースコードや、使い方は、判りやすいように、また、具体的に変更していますが、ほとんど、関連サイトに記載のものです。
非常に、基本的で、重要なところでしたので、あえて記事にしておきました。

関連サイト: http://doc.trolltech.com/4.5/designer-using-a-ui-file.html

何かお気づきの点があれば、コメントいただければ幸いです。

もっと、Qt関連について詳しく知りたい方は、以下の本なども良いと思います。
Qtに関する日本語の本が少ないですね。「入門書」は、さすがに、このページを読まれるくらいの方は不要だと思います。
やっぱり、本+ネット+試してみる!!の3本柱でやっていく以外にないように思います。


コメント

コメントをどうぞ







  • はてなブックマークへ追加する
  • Facebookでシェアする
  • twitter でつぶやく
  • Google Plusでシェアする
  • Pocketでシェアする
ページトップへ