Qt-如何定位这样的UI元素?

时间:2013-07-06 19:26:07

标签: qt user-interface

我在Qt中创建了一个UI,它有一个包含QPushButton和QLineEdit的QDockWidget。请参阅随附的模型。我创建了小部件组件并成功启动并运行它们。然而,它们并不像我希望的那样定位。当调整窗口大小时,两个元素都应向左浮动,从而使额外的空间适合于拉伸。

Mock up

代码 -

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);

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

1 个答案:

答案 0 :(得分: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

希望有所帮助。