有时您需要创建一个 非常 Qt4 中的简单单文件应用程序。然而这是有问题的,因为你总是进行 CPP/H 分离,然后 main() 位于另一个文件中......

有什么想法如何在单个文件中执行此操作吗?尽快弄脏。

有帮助吗?

解决方案

这是一个示例,展示了如何在单个文件中执行此操作。只需将其放入一个新目录中,将其另存为“main.cpp”,然后运行 qmake -project; qmake; make 编译。

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

这个演示中有两个技巧:

  1. 首先是如何调用“qmake -project”自动使用当前目录中的文件创建一个 *.pro 文件。默认情况下,目标名称是目录的名称,因此请明智地选择它。
  2. 其次是在 CPP 文件中#include *.moc,要求 moc 预处理 QObject 定义的 CPP 文件。

其他提示

如果你需要建立一个快速原型,使用Python和 PyQt4的甚至更紧凑:

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

没有必要要求qmake.moc文件打扰。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top