Pergunta

Às vezes você precisa criar um muito Aplicativo de arquivo único simples no QT4. No entanto, é problemático, pois você está sempre fazendo a separação CPP/H e, em seguida, o principal () está em outro arquivo ...

Alguma idéia de como fazer isso em um único arquivo? O mais rápido possível.

Foi útil?

Solução

Este é um exemplo que mostra como fazer isso em um único arquivo. Basta jogar isso em um novo diretório, salve -o como "main.cpp" e depois corra qmake -project; qmake; make compilar.

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

Dois truques nesta demonstração:

  1. Primeiro é como chamar "Qmake -project" para criar um arquivo *.pro com os arquivos no diretório atual automaticamente. O nome de destino por padrão é o nome do diretório; portanto, escolha -o com sabedoria.
  2. O segundo é para #include *.moc no arquivo CPP, para pedir ao MOC que pré -processasse os arquivos CPP para definições de QOBject.

Outras dicas

Se você precisar construir um protótipo rápido, usando Python e Pyqt4 é ainda mais compacto:

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

Não há necessidade de ligar qmake ou para se preocupar com .moc arquivos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top