Frage

Manchmal braucht man eine erstellen sehr einfache einzelne Datei Anwendung in Qt4. Es ist jedoch problematisch, da man immer die CPP / H Trennung tun, und dann der main () ist in einer anderen Datei ...

Alle Ideen, wie dies in einer einzigen Datei zu tun? So schnell wie schmutzig wie möglich.

War es hilfreich?

Lösung

Dies ist ein Beispiel, das zeigt, wie diese in einer einzigen Datei zu tun. werfen diese nur in einem neuen Verzeichnis, speichern Sie es als „main.cpp“ und führen Sie dann qmake -project; qmake; make zu kompilieren.

#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"

Zwei Tricks in dieser Demo:

  1. Erste ist, wie „qmake -project“ nennen eine * .pro-Datei mit den Dateien im aktuellen Verzeichnis automatisch zu erstellen. Der Zielname ist standardmäßig der Name des Verzeichnisses, das so klug wählen.
  2. Ist an zweiter Stelle * .moc in der CPP-Datei # include, moc zu bitten, die CPP-Dateien für QObject Definitionen vorverarbeitet.

Andere Tipps

Wenn Sie einen schnellen Prototyp zu bauen, mit Python und PyQt4 ist noch kompakter:

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_())

Keine Notwendigkeit, Anruf qmake oder mit .moc Dateien zu stören.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top