uic によって生成されたコードを使用してウィジェットによって設定された QDialog のインスタンスがあります。ダイアログには垂直に配置されたいくつかのラベルが含まれており、これらのラベルにテキストを表示するために時々ダイアログをポップしています。テキストは複数行にすることができ、その長さは事前に決定されていません。垂直サイズ ポリシーを固定に設定したため、ユーザーはドラッグできません (意味がありません) が、ラベルの現在のサイズに合わせて表示される前に、ダイアログのサイズを変更することも必要です。
この目的のために、表示する前に QDialog で QWidget::adjustSize() を呼び出していましたが、期待どおりに動作しません。ダイアログが表示されると、以前の表示からの (間違った) サイズが保持されているように見えますが、(無効な) 垂直方向のサイズ変更モードでマウスをクリックすると、ダイアログが突然 (正しい) 調整されたサイズに「スナップ」します。
ダイアログを正しく表示する方法はありますか?
編集:私は rubenvb のアドバイスを結び、これで終わった:
QSizePolicy free(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
QSizePolicy fixed(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed);
dialog->setSizePolicy(free);
dialog->adjustSize();
dialog->setSizePolicy(fixed);
dialog->show();
残念ながら、それは何も変わっていないようでした。