0

我有一个关于QLineEdit东西的问题。我创建了一个QVBoxLayout元素并使用addWidget(widget)它来添加一些QLabelQComboBox布局。它们中的大多数都可以正常工作,除非QLineEdit您可以在我发布的图片中看到。QLineEdit只需占用整个窗口的一半空间。我的问题是如何防止这种情况?(我很确定这是问题,QLineEdit因为通过删除每个小部件对它们进行了测试,没有QLineEdit我会得到类似第一张图片的东西)

这些是添加的代码QLineEdit

m_qtLeftValue = new QLineEdit;
m_qtLeftValue->setText(m_leftValue.c_str());
m_qtLeftValue->setFixedWidth( 20 );
m_sidePaneLayout->addWidget(m_qtLeftValue, 4, 0, 1, 1);

其中m_sidePaneLayout定义如下:

// add sidePane to UI
QWidget *sidePaneWidgetHolder = new QWidget(this);
m_sidePaneLayout = new QGridLayout(sidePaneWidgetHolder);

// add to m_gridLayout
m_gridLayout->addWidget(sidePaneWidgetHolder, 0, 3, 9, 1);

希望有人能帮我解答这个问题,谢谢!

我想要的结果 我不想要的结果

4

1 回答 1

0

使您sidePaneWidgetHolder的自定义类派生QWidget并覆盖它sizeHint()以返回合理的默认值,并在其上设置一个sizePolicy- 您可能希望QSizePolicy::Maximum作为垂直策略。

于 2013-07-10T22:16:18.373 回答