单文件Qt4演示

发布于 2024-08-03 17:39:20 字数 135 浏览 10 评论 0原文

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

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

Sometimes you need to create a very simple single file application in Qt4. However it's problematic since you are always doing the CPP/H separation, and then the main() is in another file...

Any ideas how to do this in a single file? As quick as dirty as possible.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

软甜啾 2024-08-10 17:39:20

这是一个示例,展示了如何在单个文件中执行此操作。只需将其放入一个新目录中,将其另存为“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 文件。

This is an example that shows how to do this in a single file. Just throw this in a new directory, save it as "main.cpp" and then run qmake -project; qmake; make to compile.

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

Two tricks in this demo:

  1. First is how to call "qmake -project" to create a *.pro file with the files in the current directory automagically. The target name by default is the name of the directory, so choose it wisely.
  2. Second is to #include *.moc in the CPP file, to ask moc to preprocess the CPP files for QObject definitions.
吃颗糖壮壮胆 2024-08-10 17:39:20

如果您需要构建快速原型,使用 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 文件。

If you need to build a quick prototype, using Python and PyQt4 is even more compact:

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

No need to call qmake or to bother with .moc files.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文