Qt 如何交换物品和间隔垫圈?
在qt中,我有一个表单,其中包含一个Qt 如何交换物品和间隔垫圈?,qt,alignment,visibility,Qt,Alignment,Visibility,在qt中,我有一个表单,其中包含一个 组合框 复选框 间隔棒 钮扣 基于某些逻辑,我有时想显示另一个组合框。。。间隔棒在哪里,但更小 但当我添加它时,所有内容都会自动调整大小 我看不到一种方法可以使它隐形,但当我再次使它可见时,却能保持相同大小的物品 我试着让它固定大小。。。但是,除非我对所有东西都使用固定的大小和位置,我认为这是个坏主意,否则当我改变可见性时,这些东西仍然会四处移动 看起来很傻。。。但我怎样才能让我的小组合框显示出来,而不是不在旁边的间隔框呢?间隔器似乎没有名字 我愿意 c
- 组合框
- 复选框
- 间隔棒
- 钮扣 基于某些逻辑,我有时想显示另一个组合框。。。间隔棒在哪里,但更小
combo.setVisible(condition);
Spacer.setVisible(!condition);
很简单。。。除了如何从代码访问间隔器之外?我的建议是使用容器
QWidget
而不是间隔器。下面是它的外观:
A combo box
a checkbox
a widget-container
a button
小部件容器是一个具有固定大小的QWidget
。将您的组合框放在那里,当您显示/隐藏组合框时,它将保持其大小
关于你的问题(你不需要它,只是想在将来知道):
如何从代码访问间隔垫圈
您可以根据以下代码创建间隔符:
QSpacerItem* spacer = new QSpacerItem(0, 15, QSizePolicy::Fixed, QSizePolicy::Fixed);
layout->addItem(spacer);
...
如果您知道布局的索引,也可以从布局中获取:
QLayoutItem* item = layout->itemAt(index);
但是对于布局项没有显示/隐藏这样的方法。请发布一个代码片段,说明如何创建小部件和间隔符并将其添加到父级/布局。表单是使用Qt Designer创建的,所以技术上我没有代码显示。。。但是感谢你的评论,我查看了设计的xml,看到了间隔名称。。。这是我之前在属性窗口中无法看到的。谢谢。这个小部件非常完美——而且不需要编码,只需5秒钟的修复:-)太棒了