题
有时您需要创建一个 非常 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"
这个演示中有两个技巧:
- 首先是如何调用“qmake -project”自动使用当前目录中的文件创建一个 *.pro 文件。默认情况下,目标名称是目录的名称,因此请明智地选择它。
- 其次是在 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
文件打扰。
不隶属于 StackOverflow