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.
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:
- 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.
- 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