Qt
には、デスクトップアプリケーションのウィンドウの表示を処理するための柔軟で強力なレイアウトメカニズムがあります。
しかし、柔軟性が非常に高いため、何かがうまくいかず、微調整が必要な場合、ほとんど理解できません。そして非常に強力なので、フォームがどのように見えるべきかについてのQtの意見を圧倒しようとする試みで誰よりも勝つことができます。
だから、誰かが記事を説明したり、Qtのポジショニングメカニズムのソースを提供したりできますか?
名前の末尾のアンダースコアでマークされたQLabel
、QPushButton
、およびQTableView
を、QTextBrowser
が_verticalStretch = 1
_以下。ウィジェットの高さを適切に処理するにはどうすればよいですか?
レイアウトは実際には「i think」と理解しやすいです:)
レイアウトの簡単な説明は、QTブック「QT第2版でのC++ Guiプログラミング」にあります。 」
レイアウトとそのサイズポリシーに関する注意事項
私は4つのサイズポリシーにしか精通していません
聞きたいかもしれませんが、
優先と拡張の違いは何ですか?
answer:2つのウィジェットを持つフォームを想像してください。1つは優先ウィジェット、もう1つは拡張ウィジェットで、ウィジェットに余分なスペースが与えられます拡大するポリシーで。優先ポリシーを持つウィジェットは、サイズヒントのままになります。
(警告:専門家ではありません:))購入して読み通してください "C++ QT第2版でのGuiプログラミング」。私は現在それを読んでいて、その意味を十分に理解しています。画像を見て、それらが意味をなすかどうかを確認します。
サイズポリシーの説明
簡単な例
これは、水平および垂直のサイズポリシーが水平および垂直のストレッチとして表示される2つのボタンを持つ単純なダイアログです。
これが最小サイズのプレビューです
ここに、より大きなサイズの別のプレビューがあります
[編集://追加されたサイズのヒントの例]
SIZEHINTに注意する必要がある理由
QTのレイアウトシステムは常にsizeHintを尊重するため、すべてのウィジェットにはsizeHintが不可欠です。これは、ウィジェットのデフォルトサイズが希望どおりになっていない場合にのみ問題になります。この問題を回避する唯一の方法は、ウィジェットを拡張(サブクラス)し、そのsizeHint()メンバー関数を再実装することです。例は1000語に相当します。スペースを節約するには、サンプルプロジェクトがある私のブログを参照してください。