我该如何在pyqt4的Qt Designer中使用“promote to”?

14
在设计器中,当我右键单击小部件并点击“提升为”,我会得到这个窗口。请参见下面的截图。
我从未使用过这个功能,头文件实际上令我感到困惑。它是干什么用的?这是否意味着在这种情况下我可以创建一个新类,继承QLineEdit并添加更多方法?提升后的类名是什么?

可能是Promote PyQt Widget的重复问题。 - ekhumoro
1个回答

29

这样您就可以使用在其他地方定义的自定义小部件,而设计师本来不知道它们的存在。

例如,如果您定义了一个从QLabel派生的小部件MyLabel,那么您可以在此处定义它,然后只需在您的UI中插入一个QLabel作为占位符,并将其提升为MyLabel

然后,uic编译器将包括必要的导入/包含文件,例如,如果您指定了mypackage/mycomponent.h作为头文件和MyLabel作为类名,则pyuic将添加:

from mypackage.mycomponent import MyLabel

请注意,.h 在 pyuic 中被忽略,斜杠被转换为.以保持与 Python 的兼容性。

全局包含文件在 pyuic 中不起作用,它只影响 uic(为 C++ 生成#include "mypackage/mycomponent.h"#include <mypackage/mycomponent.h>)。


24
这是深奥的黑魔法。Qt(创建者|设计师)的用户体验真的需要明确地承认除了C++之外还有其他语言的存在。需要指定一个C++头文件,然后pyuicpysideuic默默忽略它的文件类型,这尤其令人无法容忍。 - Cecil Curry

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接