1

我看到 QComboBox 发生了这种奇怪的行为,它不会在其内容更改后立即更新。为了演示这里的问题是一个示例代码和一些屏幕截图。

初始小部件 在此处输入图像描述

将项目添加到组合框在此处输入图像描述(查看复选框如何重叠)

手动调整大小更新并调整布局和组合框在此处输入图像描述

#include <QApplication>
#include <QtGui>

int main(int argc, char* argv[])
{
    QApplication app(argc, argv);

    QWidget parentWidget;
    QCheckBox checker;
    QComboBox comber;
    QHBoxLayout layoot;

    comber.setEditable (true);
    comber.setSizeAdjustPolicy(QComboBox::AdjustToContents);

    layoot.addWidget (&comber);
    layoot.addWidget (&checker);
    parentWidget.setLayout(&layoot);

    parentWidget.show();
    return app.exec();
}

我在组合框上尝试了 update() 和 repaint() 以及项目被编辑后的布局,但没有任何效果。我真的必须手动调整组合框的小部件大小才能重新调整吗?有没有人知道这个问题的修复?

谢谢你。

简历

4

2 回答 2

1

这对我来说听起来像是一个错误,特别是如果手动调用update布局没有效果。也许您看到的是这个错误。显然,这是在 4.8.0 中修复的。

于 2011-12-01T21:52:23.377 回答
0

我同意这是一种奇怪的行为......parentWidget.resize(parentWidget.sizeHint()) ;在添加文本后添加解决了问题,但它更像是一个黑客而不是一个答案。

编辑:好的,您是否尝试过QComboBox::AdjustToContentsOnFirstShowsizeAdjustPolicy ?它符合您的需求吗?至少它也解决了嵌入式小部件的问题

于 2011-12-01T19:10:56.493 回答