【问题标题】:Promoting widgets in Qt Creator在 Qt Creator 中推广小部件
【发布时间】:2011-02-05 15:40:22
【问题描述】:

Qt 创建者可以选择将一个小部件提升为从基本小部件派生的自定义创建的类 - 我想使用它来将小部件提升为当前项目中的类。 Qt 创建者向我询问类名和头文件名,这些值直接转到 *.ui 文件,然后转到 ui_myform.h - 问题是这个文件可能是(并且通常是)在源树之外(在构建树中)生成的,它可以在任意位置,因此在提升窗口时直接指定路径将无济于事。如何让 QtCreator/uic 知道在哪里寻找正确的标题?有可能吗?

也许有一些 Qt 变量指定源树的位置,我可以插入到头文件名字段中?

我使用的是自编译的 QtCreator 2.0.1 + 自编译的 Qt 4.7.1。

编辑:

为什么不能直接输入头文件的完整路径名?

如果我要移动源代码树,甚至在网络上共享它会怎样——那么每个想要编译我的项目的人都必须在 Qt 创建器或源文件中编辑这个路径——两者都是不可接受的。

【问题讨论】:

  • 为什么不能直接输入头文件的完整路径名?

标签: qt qt-creator promoting


【解决方案1】:

Designer 在促销对话框中要求您提供的头文件是您的 自己的定义自定义小部件的头文件,而不是生成的 ui_*.h 文件。

假设你想将一个普通的QWidget 提升为MyCustomWidget,你必须已经有一个MyCustomWidget.h 来定义你的MyCustomWidget 类包含在你的.pro中em> 文件如下:

HEADERS  += MyCustomWidget.h

在小部件升级对话框中,只需输入 MyCustomWidget.h。它的目的是使生成的 ui 头文件(无论它在哪里)可以包含 YOUR 类定义。

【讨论】:

    【解决方案2】:

    我已经弄清楚了这件事 - 我正在向我的班级宣传,并给出自己编写的标题名称,这是正确的。

    问题是这个(自己编写的)文件不是直接在项目目录中,而是在src 子目录中(所有其他来源也是如此),我没有使用 subdirs 模板,而只是像添加它们一样

    SOURCES += src/myWidget.cpp
    

    提升选项不需要完整路径,但它需要它,因为它出现在 *.pro 文件中 - 在这种情况下,从 myWidget.h 切换到 src/myWidget.h 就可以了 - 如果我移动或移动它就会起作用分享吧。

    【讨论】:

      【解决方案3】:

      如果升级的小部件表单(.ui) 和类文件(.cpp, .h) 在Qt Creator 项目子目录中,并且j_kubik 的解决方案不能帮助它显示错误("foo.h not found"),请尝试仅使用头文件名进行升级和在 .pro 文件中提供路径为 INCLUDEPATH

      【讨论】:

      • 我非常认为这很有效。如果您有放置 .ui 和 .cpp/.hpp 文件的子目录,则需要将 INCLUDEPATH 添加到类的标题
      猜你喜欢
      • 2014-10-30
      • 2013-08-24
      • 1970-01-01
      • 1970-01-01
      • 2015-02-19
      • 1970-01-01
      • 2010-12-18
      • 2011-06-17
      • 1970-01-01
      相关资源
      最近更新 更多