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.
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:
- 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.
- 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