【发布时间】:2011-03-21 10:46:25
【问题描述】:
如何在自定义 Qt 小部件的代码中知道它当前已在 Qt 设计器中实例化?
用例:
我构建了一个复杂的自定义小部件,它有几个子小部件,如 QPushButton、QLabel 等。
根据应用程序逻辑的要求,在创建小部件时,这些子组件中的大部分都是不可见的,但在设计时,当我将它放在我希望看到的表单上时。
能够在设计时使用样式表。 目前我得到的是一个空的只是构造函数的结果 - 最小视图(在我的情况下实际上是空的)。
我正在寻找的是能够做类似的事情
MyQWidget::(QWidget *parent)
{
....
if(isRunningInDesigner())
{
myChildWidget1->setVisible(true);
myChildWidget2->setVisible(true);
myChildWidget3->setVisible(true);
}
else
{
myChildWidget1->setVisible(false);
myChildWidget2->setVisible(false);
myChildWidget3->setVisible(false);
}
....
}
那么我应该在这个 bool isRunningInDesigner() 中添加什么?
【问题讨论】:
-
所以你的意思是,你想分析小部件以进行测试。即小部件的外观?
-
我想让视觉设计师的外观和感觉尽可能接近用例。考虑一个文本字符串列表小部件 - 您希望在设计时在小部件中看到一些甚至无意义的字符串,以了解它在运行时的外观