One Qt4 demo file

Sometimes you need to create the simplest single page application very much in Qt4. However, this is problematic as you always do the CPP / H split and then main () is in another file ...

Any ideas how to do this in a single file? As quickly as possible.

+2


source to share


2 answers


This is an example that shows how to do this in a single file. Just drop this into a new directory, save it as "main.cpp" and then run it qmake -project; qmake; make

to compile.

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

      



Two tricks in this demo:

  • First, how to call "qmake -project" to automatically create a * .pro file with files in the current directory. The default target name is the directory name, so choose it wisely.
  • The second is #include * .moc in the CPP file to request moc to preprocess the CPP files to define the QObject.
+2


source


If you need to build a quick prototype, using Python and PyQt4 is even more 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_())

      



No need to call qmake

or worry about files .moc

.

+1


source







All Articles