Qt创建者可以选择将一个窗口小部件推广到从基本窗口小部件派生的自定义创建的类 - 我想用它来将窗口小部件推广到当前项目中的类。 Qt创建者询问我类名和头文件名,这些值直接转到 * .ui 文件,然后转到 ui_myform.h - 问题是这个文件可能是是(并且通常是)在源树(在构建树中)可以在任意位置生成,因此在促进窗口中直接指定路径将无济于事。如何让QtCreator / uic知道在哪里寻找正确的标题?它甚至可能吗?
也许有一些Qt变量指定了源树的位置,我可以在头文件名字段中插入吗?
我正在使用自编译的QtCreator 2.0.1 +自编Qt 4.7.1。
编辑:
为什么不能只输入头文件的完整路径名?
如果我将移动源代码树,或者甚至在网上分享它,那么每个想要编译我的项目的人都必须在Qt创建者或源文件中编辑这个路径 - 两者都是不可接受的。
答案 0 :(得分:22)
Designer在促销对话框中要求您提供的头文件是您的自定义头文件,用于定义自定义窗口小部件,而不是生成的 ui _ *。h 文件。< / p>
假设您要宣传普通QWidget
到MyCustomWidget
,您必须已经有一个 MyCustomWidget.h ,它定义了您的<{1}}类< em> .pro 这样的文件:
MyCustomWidget
在小部件升级对话框中,只需输入 MyCustomWidget.h 即可。它的目的是生成的ui头文件(无论它在哪里)可以包含你的类定义。
答案 1 :(得分:3)
我已经想出了这个问题 - 我正在向我的班级推广,并给出了自编的标题名称,这是正确的。
问题是这个(自编写的)文件不是直接在项目目录中,而是在src
子目录中(其他所有源也都是),我没有使用子模板,只是添加它们像< / p>
SOURCES += src/myWidget.cpp
促销选项不需要完整路径,但它需要它显示在*.pro
文件中 - 在这种情况下,从myWidget.h
切换到src/myWidget.h
就可以了 - 而且它如果我移动或分享它将会有效。
答案 2 :(得分:1)
如果提升的窗口小部件(.ui)
和类文件(.cpp, .h)
位于Qt Creator项目子目录中,并且j_kubik的解决方案无法帮助它显示错误("foo.h not found")
,请尝试仅使用标头促销的文件名,并在.pro文件中提供INCLUDEPATH
的路径。