【问题标题】:QMake: how to let UIC generate BOTH header and source files?QMake:如何让 UIC 生成头文件和源文件?
【发布时间】:2011-07-21 08:36:25
【问题描述】:

在 .pro 文件中,我定义了 UI_HEADERS_DIR = ./uic/include UI_SOURCES_DIR = ./uic/src 但编译后,我只得到 ui_x.h 文件,其中包含声明和实现。

这是否意味着 QMake 无法生成仅包含最少声明的简单头文件并将所有实现细节放入源文件?

这是一个生成的示例 .h 文件,您可以在 .h 文件中找到声明和实现:

/********************************************************************************
** Form generated from reading UI file 'DemoDialog.ui'
**
** Created: Thu 21. Jul 16:08:58 2011
**      by: Qt User Interface Compiler version 4.7.2
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/

QT_BEGIN_NAMESPACE

class Ui_DemoDialog
{
public:

    void setupUi(QDialog *DemoDialog)
    {
        if (DemoDialog->objectName().isEmpty())
            DemoDialog->setObjectName(QString::fromUtf8("DemoDialog"));
        DemoDialog->resize(400, 300);

        retranslateUi(DemoDialog);

        QMetaObject::connectSlotsByName(DemoDialog);
    } // setupUi

    void retranslateUi(QDialog *DemoDialog)
    {
        DemoDialog->setWindowTitle(QApplication::translate("DemoDialog", "Dialog", 0, QApplication::UnicodeUTF8));
    } // retranslateUi
};

namespace Ui {
    class DemoDialog: public Ui_DemoDialog {};
} // namespace Ui

QT_END_NAMESPACE

【问题讨论】:

    标签: qmake


    【解决方案1】:

    读取 .ui 文件并将其转换为代码的程序是“uic”,即用户界面编译器。

    它不写出源文件:它只写标题。

    its documentation

    那么奥秘是为什么qmake variable reference page 费心说 UI_SOURCES_DIR 存在?

    现在或以前可能有一些未记录的 uic 选项使 qmake make uic 写出 .cpp 文件。但即使有,我也不建议使用它,因为担心它将来可能会消失。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-16
      • 2020-01-28
      • 1970-01-01
      • 1970-01-01
      • 2018-08-24
      相关资源
      最近更新 更多