Question

Parfois, vous devez créer un très application simple de fichier unique dans Qt4. Cependant, il est problématique puisque vous faites toujours la séparation du RPC / H, puis la main () est dans un autre fichier ...

Toutes les idées comment faire cela dans un seul fichier? Aussi rapide aussi sale que possible.

Était-ce utile?

La solution

Ceci est un exemple qui montre comment faire cela dans un seul fichier. Il suffit de jeter dans un nouveau répertoire, l'enregistrer comme « main.cpp », puis exécutez qmake -project; qmake; make pour compiler.

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

Deux astuces dans cette démo:

  1. Tout d'abord comment appeler « qmake -project » pour créer un fichier * .pro avec les fichiers dans le répertoire courant automagiquement. Le nom de la cible par défaut est le nom du répertoire, afin de choisir judicieusement.
  2. La deuxième est #include * .moc dans le dossier du RPC, de demander moc de prétraiter les fichiers du RPC pour les définitions QObject.

Autres conseils

Si vous avez besoin de construire un prototype rapide, en utilisant Python et PyQt4 est encore plus compact:

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

Pas besoin d'appeler qmake ou pris la peine avec les fichiers .moc.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top