Domanda
A volte è necessario creare un molto semplice applicazione singolo file in Qt4. Tuttavia è problematico in quanto si sta facendo sempre la separazione CPP / H, e poi il main () è in un altro file ...
Tutte le idee come fare questo in un unico file? Veloce come sporco possibile.
Soluzione
Questo è un esempio che mostra come fare questo in un unico file. Basta buttare questo in una nuova directory, salvarlo come "main.cpp" e quindi eseguire qmake -project; qmake; make
per la compilazione.
#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"
Due trucchi in questa demo:
- In primo luogo è come chiamare "qmake -project" per creare un file * .pro con i file nella directory corrente automagicamente. Il nome di destinazione di default è il nome della directory, in modo da scegliere con saggezza.
- In secondo luogo è quello di # include * .moc nel file CPP, di chiedere moc per pre-elaborare i file CPP per le definizioni QObject.
Altri suggerimenti
Se avete bisogno di costruire un prototipo rapido, utilizzando Python e PyQt4 è ancora più compatta:
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_())
Non c'è bisogno di chiamare qmake
o perdere tempo con i file .moc
.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow