Qt Designer - 如何使一个小部件跨越多列?

30
我创建了一个简单的表单。在右下角添加了一个PushButton,然后在其上方添加了一个TabWidget。我突出显示了主窗口,并选择了网格布局。PushButton被拉伸了,因此我在其左侧添加了一个spacer。
现在,我的Tab Widget仅占据最左边的列。我想让它跨越到Column1中。我查看了每个选项并尝试在任何位置右键单击,但无法使设计者创建此跨度。
为了确保我没有漏掉任何内容,我直接修改了 .ui 文件,将 colspan="2" 添加到 Tab Widget 的标签中,重新加载了设计器,它完美地显示出来了。但是,我希望尽可能地使用设计器。
有什么方法可以实现这种跨度吗?
3个回答

49

嗯...这很简单,只需要进行“拖动操作”。只需抓住最靠近您要跨越的列的TabWidget边缘。现在只需在空列上轻松地“拉伸”TabWidget...它现在应该会横跨两列。


3
Tab Widget可能存在Bug。它在List Widget上可以正常工作。虽然Tab Widget显示了手柄,但当你拖动它时,它不会做出任何反应(它不会拉伸)。 - esac
你没有为固定/最大大小设置大小提示吗? - Kamil Klimek
3
好的,我已经检查了Qt 4.6.2。我不能把它拉伸得太大......您可以在http://bugreports.qt.nokia.com/上填写错误报告。 - Kamil Klimek
2
这实际上并不起作用,因为Qt(Creator|Designer)存在近十年的问题。为什么这是被接受的答案?肯定这从来没有像广告宣传的那样工作过。要获得可行的解决方案,请参见Andreas聪明的bizarro world hack - Cecil Curry
2
@KamilKlimek 完成。 七年后,这个问题终于被一个愤怒的人提交到了Qt Creator bug跟踪器。这太荒谬了,各位。在未来,请将不可忽视的错误报告提交给负责方,而不是将可忽略的投诉嵌入StackOverflow评论中。世界上除了StackOverflow还有其他事情值得我们全神贯注。 - Cecil Curry
将小部件的边缘拖动以更改其列跨度属性在我的Qt Designer 4.8.4版本中有效。 - Mike Finch

11

如果您在拉伸TabWidget时遇到问题(至少在4.6.2-4.7.3版本中存在一个错误),您可以右键单击它,将其转换为QToolBox,然后拉伸它,再次右键单击并将其转换回QTabWidget。

我对空的QTabWidget进行了尝试,但不知道如果您已经向其中添加了一些子小部件会发生什么。


1
Qt Designer 4.8.5,2017年版,仍无法拉伸QTabWidget - CallMeLaNN
这简直是疯了。这个明智的建议实际上很有效,但却让我失去了宝贵的理智。对于未经培训的人,请注意,“将其转换为QToolBox”意味着从右键单击的QTabWidget上下文菜单中选择“变形-> QToolBox”。还要注意,由于QTabWidget和QToolBox完全可以互换,这是绝对安全的。在非空QTabWidget和QToolBox之间进行转换是无损操作。QTabWidget的内容将被保留为原样,不会丢失。 - Cecil Curry
更正:在非空的QTabWidget和QToolBox之间进行转换确实会有一定的信息损失,令人遗憾的是:这样做会将所有现有选项卡的标题重置为空字符串。虽然最终只需付出很小的代价,但您可能不想再次付出这个代价。 - Cecil Curry

8

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