在qt中,我有一个表格,其中包含一个
组当我添加它时,一切都会自动调整大小
我没有看到让它变得不可见的方法,但是当我再次看到它时保持相同尺寸的物品。
我尝试将其固定尺寸...但除非我使用固定尺寸和定位所有内容,我认为这是一个坏主意,当我改变可见度时,项目仍会移动。
看起来很傻......但是我怎样才能让我的小组合框显示而不是旁边的间隔?间隔物似乎没有名称......
我愿意
combo.setVisible(condition);
Spacer.setVisible(!condition);
非常简单......除了如何从代码访问spacer?
答案 0 :(得分:2)
我的建议是使用容器QWidget
而不是间隔符。以下是它的外观:
A combo box
a checkbox
a widget-container
a button
Widget-container是QWidget
,固定大小。把你的组合框放在那里,当你显示/隐藏组合框时它会保持它的大小。
关于你的问题(你不需要它,但只是为了将来知道):
如何从代码
访问spacer
您可以使用以下代码创建间隔符:
QSpacerItem* spacer = new QSpacerItem(0, 15, QSizePolicy::Fixed, QSizePolicy::Fixed);
layout->addItem(spacer);
...
如果您知道其索引,也可以从布局中获取它:
QLayoutItem* item = layout->itemAt(index);
但布局项目没有show/hide
这样的方法。