如何在自定义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() 中加入什么?
答案 0 :(得分:1)
要在Qt Designer中为自定义窗口小部件提供特殊行为,请提供 initialize()函数的实现,以便为Qt Designer特定行为配置窗口小部件构造过程。在调用 createWidget()之前,这个函数将首次被调用,并且可能设置一个内部标志,以便在Qt Designer调用插件的 createWidget()功能。
这些是来自 QDesignerCustomWidgetInterface 插件界面的方法。简而言之:当Qt Designer要求您的插件创建自定义小部件的实例时,您告诉窗口小部件的行为不同。