Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt QBoxLayout拧紧QFormLayout?_Qt_User Interface_Layout_Qt4_Hbox - Fatal编程技术网

Qt QBoxLayout拧紧QFormLayout?

Qt QBoxLayout拧紧QFormLayout?,qt,user-interface,layout,qt4,hbox,Qt,User Interface,Layout,Qt4,Hbox,以下是简化的代码段: #include <QtGui> int main(int argc, char **argv) { QApplication app(argc, argv); QWidget *window = new QWidget(); QFormLayout *form = new QFormLayout(); // first row form->addRow("First row:", new QLineEdit()); // second row QW

以下是简化的代码段:

#include <QtGui>

int main(int argc, char **argv)
{
QApplication app(argc, argv);
QWidget *window = new QWidget();
QFormLayout *form = new QFormLayout();

// first row
form->addRow("First row:", new QLineEdit());

// second row
QWidget *hbox_widget = new QWidget();
QBoxLayout *hbox = new QHBoxLayout();
hbox->addWidget(new QLineEdit());
hbox_widget->setLayout(hbox);
form->addRow("Second row:", hbox_widget);

window->setLayout(form);
window->show();
return app.exec();
}
#包括
int main(int argc,字符**argv)
{
QApplication应用程序(argc、argv);
QWidget*窗口=新的QWidget();
QFormLayout*表单=新QFormLayout();
//第一排
表单->添加行(“第一行:”,新的QLineEdit());
//第二排
QWidget*hbox_widget=新的QWidget();
QBoxLayout*hbox=新的QHBoxLayout();
hbox->addWidget(新的QLineEdit());
hbox_小部件->设置布局(hbox);
表单->添加行(“第二行:”,hbox\u小部件);
窗口->设置布局(表格);
窗口->显示();
返回app.exec();
}
在这里,我创建了一个包含两行的QFormLayout:第一行是label+输入小部件的经典示例,第二行几乎相同,只是输入小部件被“装箱”在QHBoxLayout(+包含小部件)中


出于某种原因,这似乎会破坏输入小部件(第二行)的“垂直居中”。如何将包含hboxlayout中其他控件的小部件添加到formlayout中,并使它们仍然垂直居中?

将QHBoxLayout的内容边距设置为0:

QBoxLayout *hbox = new QHBoxLayout();
hbox->setContentsMargins(0, 0, 0, 0);