2

場合によっては、Qt4 で非常に単純な単一ファイル アプリケーションを作成する必要があります。ただし、常に CPP/H 分離を行っており、main() が別のファイルにあるため、問題があります...

単一のファイルでこれを行う方法はありますか? できるだけ早く汚れます。

4

2 に答える 2

2

これは、単一のファイルでこれを行う方法を示す例です。これを新しいディレクトリにスローし、「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"

このデモの2つのトリック:

  1. 1つ目は、「qmake -project」を呼び出して、現在のディレクトリ内のファイルを含む*.proファイルを自動的に作成する方法です。デフォルトのターゲット名はディレクトリの名前なので、賢明に選択してください。
  2. 2つ目は、CPPファイルに#include * .mocを追加して、QObject定義のCPPファイルを前処理するようにmocに要求することです。
于 2009-09-01T10:29:14.237 に答える
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ファイルに煩わされたりする必要はありません。

于 2009-09-01T10:13:40.337 に答える