【问题标题】:QBoxLayout screws up QFormLayout?QBoxLayout 搞砸了 QFormLayout?
【发布时间】:2012-04-14 23:46:54
【问题描述】:

以下简化代码sn-p:

#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();
}

在这里,我创建了一个包含两行的 QFormLayout:第一行是 label+input 小部件的经典示例,第二个几乎相同,只是输入小部件在 QHBoxLayout(+包含小部件)。

由于某种原因,这似乎搞砸了输入小部件的“垂直居中”(在第二行)。如何将包含 hboxlayout 中其他小部件的小部件添加到 formlayout 中,并且仍然使它们全部垂直居中?

【问题讨论】:

    标签: qt user-interface layout qt4 hbox


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多