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.

È stato utile?

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:

  1. 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.
  2. 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
scroll top