单文件Qt4演示

单文件Qt4演示,qt,qt4,moc,Qt,Qt4,Moc,有时,您需要在Qt4中创建一个非常简单的单文件应用程序。但是,这是有问题的,因为您总是进行CPP/H分离,然后main()位于另一个文件中 有没有办法在一个文件中实现这一点?尽可能快。如果您需要使用Python构建快速原型,并且更加紧凑: import sys from PyQt4.QtGui import * class MainWindow(QMainWindow): def __init__(self, parent=None): QMainWindow.__in

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


有没有办法在一个文件中实现这一点?尽可能快。

如果您需要使用Python构建快速原型,并且更加紧凑:

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
文件。

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

#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"
#包括
#包括
#包括
类主窗口:公共QMainWindow{
Q_对象
公众:
主窗口(QWidget*parent=0){
按钮=新的QPushButton(“你好,世界!”,这个);
}
私人:
QPushButton*按钮;
};
int main(int argc,char*argv[])
{
质量保证申请a(argc、argv);
主窗口w;
w、 show();
返回a.exec();
}
#包括“main.moc”
本演示中有两个技巧:

  • 首先是如何调用“qmake-project”来创建一个带有当前目录中文件的*.pro文件。默认情况下,目标名称是目录的名称,因此请明智地选择它
  • 第二种方法是#在CPP文件中包含*.moc,要求moc对CPP文件进行预处理,以获得QObject定义

  • 我喜欢这个想法,但不喜欢你是如何做到的:)你应该发布一个真实的问题,然后提交上面的代码作为你自己问题的答案。我也会给你一个徽章:)我用它多次向Trolltech/QtSoftware/Nokia发送bug。我不确定PyQt4是否是最好的方法。正如我所说:“如果你需要构建一个快速的原型”。请记住,其他人的需求可能略有不同。