2009-09-01 6 views
2

非常にという単純な単一ファイルアプリケーションをQt4で作成する必要が生じることがあります。しかし、あなたは常にCPP/H分離を行っているので、main()は別のファイルにありますので、問題はあります。シングルファイルQt4デモ

どのようにすればいいですか?できるだけ早く汚れてください。

+0

私はアイデアが好きですが、あなたはそれをやっていません:)実際の質問を投稿し、上記のコードを自分の質問に答えて提出する必要があります。バッジをもらうことができます:) –

+0

完了、アイデアのおかげで。 – elcuco

答えて

2

これは、1つのファイルでこれを行う方法を示す例です。これを新しいディレクトリにスローし、 "main.cpp"として保存してから、qmake -project; qmake; makeを実行してコンパイルしてください。このデモでは

#include <QtGui/QApplication> 
#include <QtGui/QMainWindow> 
#include <QtGui/QPushButton> 

class MainWindow : public QMainWindow { 
    Q_OBJECT 
public: 
    MainWindow(QWidget *parent = 0){ 
     button = new QPushButton("Hello, world!", this); 
    } 
private: 
    QPushButton *button; 
}; 

int main(int argc, char *argv[]) 
{ 
    QApplication a(argc, argv); 
    MainWindow w; 
    w.show(); 
    return a.exec(); 
} 

#include "main.moc" 

つのトリック:

  1. まず「qmakeの-project」呼び出すために自動的にカレントディレクトリにあるファイルと* .PROファイルを作成する方法です。デフォルトではターゲット名はディレクトリの名前なので、それを賢明に選択します。
  2. もう1つは、mocにQObject定義のCPPファイルの前処理を依頼するために、CPPファイルに* .mocを#includeすることです。
1

あなたは、Pythonを使用して、迅速なプロトタイプを構築する必要があるとPyQt4がさらにコンパクトでない場合:

import sys 
from PyQt4.QtGui import * 

class MainWindow(QMainWindow): 
    def __init__(self, parent=None): 
     QMainWindow.__init__(self, parent) 

     self.button = QPushButton("Hello, world!", self) 

if __name__ == '__main__': 
    app = QApplication(sys.argv) 
    w = MainWindow() 
    w.show() 
    sys.exit(app.exec_()) 

qmakeを呼び出すか、.mocファイルを気にする必要はありません。

+0

Trolltech/QtSoftware/Nokiaに何度もバグを送っています。私はPyQt4がそれを行う最善の方法であるとは思わない。 – elcuco

+0

私が言ったように: "あなたが素早いプロトタイプを構築する必要がある場合"。他の人たちのニーズは多少異なるかもしれないことに留意してください。 –