新しい C++/Qt プロジェクトに取り組み始めたところです。これは、ファイル ツリー、オブジェクト ブラウザ、コンパイラ出力などのウィジェットがドッキングされた MDI ベースの IDE になる予定ですQDockWidget
。たとえば、次のスニペットは、下のドック ウィンドウ「ビルド情報」を作成します。
m_compilerOutput = new QTextEdit;
m_compilerOutput->setReadOnly(true);
dock = new QDockWidget(tr("Build Information"), this);
dock->setWidget(m_compilerOutput);
addDockWidget(Qt::BottomDockWidgetArea, dock);
起動すると、私のプログラムは次のようになります (開発の初期段階に注意してください)。
ただし、次のように表示したい:
私はこれを起こさせることができないようです。QDockWidget の Qt リファレンスには次のように書かれています。
カスタム サイズのヒント、最小サイズと最大サイズ、およびサイズ ポリシーを子ウィジェットに実装する必要があります。QDockWidget はそれらを尊重し、独自の制約を調整してフレームとタイトルを含めます。サイズ制約は、ドッキングされているかどうかによって変化するため、QDockWidget 自体に設定しないでください。
さて、これは、これを行う方法の 1 つは、メソッドをサブクラス化QTextEdit
してオーバーライドすることであることを示唆していますsizeHint()
。ただし、その目的のためだけにこれを行うことはお勧めしません。また、それが有効な解決策であることを確認するために試したこともありません。
dock->resize(m_compilerOutput->width(), m_compilerOutput->minimumHeight())
を呼び出しm_compilerOutput->setSizePolicy()
て、各オプションを呼び出してみました...これまでのところ、サイズに影響を与えたものはありません。私が言ったように、変更するためだけにサブクラスを作成しなければならないよりも、数行のコードで簡単な解決策を好むでしょうsizeHint()
。すべての提案を歓迎します。