Qt Creator中的初始隐藏控件

33
我希望只有在选中单选按钮时才显示一个组框。
我通过将单选按钮的toggled(bool)信号连接到组框的setShown(bool)槽来实现了这一点。
问题是,单选按钮最初未被选择,但组框最初显示,因此我必须选择/取消选择单选按钮才能使其消失。
在Qt Creator Designer中是否有方法可以使组框最初不可见,而无需在代码中执行此操作?
2个回答

60

你做不到。

Qt Designer的属性编辑器中似乎故意删除了visible属性,你不能将其添加回去。

你可以通过在想要隐藏的小部件的节点中添加以下XML块来手动添加该属性到.ui文件中:

<property name="visible">
   <bool>false</bool>
</property>

但是当你使用设计器重新打开界面时,该部件将不可见或不可移动。但它仍会出现在小部件层次结构中。


6
我建议不要修改 .ui 文件,因为它是自动生成的。只需在您的 __init__ 中添加 self.ui.widget_name.setVisible(False) 即可。 - Guimoute

6
你可以试着调整属性(查看setHidden),但在代码中完成会更容易。因此,你需要执行以下操作:
ui setup code
ui->groupBox->setHidden(true)

radio button slot
if true ui->groupBox->setHidden(false)
else if false ui->groupBox->setHidden(true)

这确实是最简单的方法,我在Designer中添加Qt已经使用的属性方面从来没有什么好运气。


我已经完成了这个任务,但是我正在寻找另一种方法。自定义插槽是不必要的,将“toggled(bool)”连接到“setShown(bool)”可以正常工作。 - Daniel
在这种情况下,我建议在Designer的属性编辑器中进行挖掘,为其实现setHidden/setShown属性。 - Nicholas Smith

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