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()) ;テキストを追加した後に追加すると問題は解決しましたが、それは答えというよりはハックです。

編集:OK、QComboBox::AdjustToContentsOnFirstShow代わりにsizeAdjustPolicyを試しましたか?それはあなたのニーズに合いますか?少なくとも、埋め込みウィジェットでも問題を解決します

于 2011-12-01T19:10:56.493 に答える