qt防止QLineEdit在Layout中扩展

时间:2013-07-10 21:45:56

标签: qt

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

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

result that I want result that I DO NOT want

1 个答案:

答案 0 :(得分:0)

让您的sidePaneWidgetHolder自定义类来自QWidget并覆盖它sizeHint()以返回合理的默认值,并set a sizePolicy就可以了 - 您可能需要{{} 3}}作为垂直政策。