0

我正在尝试使用 GUI 布局,看看我能用它做什么。这是我希望实现的目标:小部件的上半部分有一个标题框,它应该如下所示:

*****************************
*        [LOGO]     [button]*
*****************************

徽标应位于框架的中心,左侧没有任何内容。LOGO右侧也会有一个按钮。LOGO有固定大小。

我可以在没有按钮的情况下将LOGO设置在中心,但是一旦添加它,LOGO的位置就会改变。

所以我目前的解决方案是在LOGO的左边加一个不带文字的测试标签,这样边框就和中间的LOGO对称了。

但是我仍然对这种布局的正确方法感到好奇,有人可以帮忙吗?非常感谢

4

1 回答 1

0

您可以考虑使用 aQGridLayout和调用QGridLayout::setColumnStrech来为相应的列分配优先级。您还可以使用 aQSpacerItem在小部件之间添加空间。

这是一些示例代码:

QGridLayout *gridLayout = new QGridLayout;
// Set the minimum widths for all three columns of the grid
gridLayout->setColumnMinimumWidth(0, 100);
gridLayout->setColumnMinimumWidth(1, 300);
gridLayout->setColumnMinimumWidth(2, 100);

// use width 100 to fill the first column
QSpacerItem *spacer = new QSpacerItem(100, 0);
QLabel *logo = new QLabel;
QButton *button = new QButton;

gridLayout->addWidget(spacer, 0, 0);
gridLayout->addWidget(logo, 0, 1);
gridLayout->addWidget(button, 0, 2);

另外,请参阅此问题的答案以获取更多信息:QGridLayout, 3 panes, not expand proper

于 2013-11-22T19:53:23.480 回答