0

我在 Qt 中创建一个 UI,它有一个包含 QPushButton 和 QLineEdit 的 QDockWidget。请参考随附的模型。我已经创建了小部件组件并成功启动并运行它们。然而,它们并没有按照我想要的方式定位。调整窗口大小时,这两个元素都应该向左浮动,从而在右侧拉伸额外的空间。

小样

编码-

this->searchField = new QLineEdit;         //"this" is a QDockWidget subclassed Object
searchField->setFixedWidth(200);
mainMenu = new Menu();                    
QHBoxLayout *layout= new QHBoxLayout;
QSpacerItem *filler = new QSpacerItem(1000, 10);
layout->addWidget(mainMenu->getMenuBar());
layout->addWidget(this->searchField);
layout->addSpacerItem(filler);

任何建议或帮助都会很棒!谢谢你的时间 :)

4

1 回答 1

2

http://qt-project.org/doc/qt-4.8/layout.html

http://qt-project.org/doc/qt-4.8/qboxlayout.html#addStretch

void QBoxLayout::addStretch ( int stretch = 0 )

将最小尺寸为零且拉伸因子拉伸的可拉伸空间(QSpacerItem)添加到此框布局的末尾。

所以这就是你的新代码的样子:

this->searchField = new QLineEdit;
searchField->setFixedWidth(200);
mainMenu = new Menu();                    
QHBoxLayout *layout= new QHBoxLayout;
layout->addWidget(mainMenu->getMenuBar());
layout->addWidget(this->searchField);
layout->addStretch(); // Added this

希望有帮助。

于 2013-07-06T19:41:45.970 回答