[解決済み] Qtのフォームレイアウト機構を理解する
質問
Qt
は、デスクトップアプリケーションのウィンドウ表示を扱うための柔軟で強力なレイアウトメカニズムを持っています。
しかし、あまりに柔軟なため、何か問題が起きて微調整が必要になったときに、ほとんど理解されないのです。そして、あまりにも強力なので、フォームがどのように見えるべきかというQtの意見を圧倒しようとする人を打ち負かすことができます。
そこで、どなたかQtの位置決め機構について説明、または記事、ソースを提供していただけませんか?
私は
QLabel
,
QPushButton
と
QTableView
の2倍である。
QTextBrowser
持つ
verticalStretch = 1
の下にあります。ウィジェットの高さを適切に処理するにはどうしたらよいでしょうか。
google docsにある私のフォームの.uiファイル。名前で'○○'を検索し、QtDesignerでプレビューしてください。
解決方法は?
レイアウトは実はわかりやすいと思います。)
レイアウトの簡単な説明は、QT book "に載っています。
QTによるC++ Guiプログラミング 第2版
"
レイアウトとそのサイズポリシーについて注意すべきこと
- ほとんどのQtウィジェットには、サイズポリシーがあります。このサイズポリシーは、ウィジェットがどのように伸縮すべきかをシステムに伝えます。これは、QSizePolicy クラスから取得します。サイズポリシーは、垂直方向と水平方向の両方のコンポーネントを持っています。
- ほとんどのウィジェットには、サイズヒントがあります。このサイズヒントは、ウィジェットの好みの大きさをシステムに伝えます。
- QSizePolicy には、ウィジェットが異なる速度で成長することを可能にするストレッチファクターがあります。
- 固定サイズポリシー - ウィジェットのサイズは固定されており、引き伸ばすことはできません。そのサイズのヒントのままです。
- 最小サイズポリシー - サイズヒントはウィジェットの可能な限り小さなサイズですが、必要に応じて大きくすることができます。
- 優先サイズポリシー - ウィジェットは、そのサイズヒントよりも縮小または大きくなることができます。
- 拡大サイズポリシー - ウィジェットはそのサイズヒントよりも縮小または拡大することができます :)
私がお勧めするのは(警告:専門家ではありません :) を購入し、一読してください。 "です。 QTによるC++ Guiプログラミング 第2版 "です。現在読んでいるのですが、とても納得のいく内容です。画像を見て、何か意味があるのかどうか確かめてみてください。
サイズポリシーの説明
簡単な例
これは、2つのボタンを持つシンプルなダイアログで、その水平方向と垂直方向のサイズポリシーが、水平方向と垂直方向のストレッチとして表示されています。
プレビューの最小サイズはこちらです。
さらに大きなサイズのプレビューはこちら
[EDITED: //サイズヒントの例を追加しました。]
なぜsizehintを気にする必要があるのか
QT のレイアウトシステムは常に sizeHint を尊重するため、すべてのウィジェットに sizeHint があることがわかります。これは、ウィジェットのデフォルトサイズが正確にあなたの望むものでない場合にのみ問題となります。この問題を回避する唯一の方法は、ウィジェットを拡張(サブクラス)し、その
sizeHint()
メンバ関数です。百聞は一見に如かず。そこで、私のブログでプロジェクトの例を紹介します。
関連
-
[解決済み] qtnetwork4.dllという正しいファイルが見当たりません。
-
[解決済み] Webフォームのフィールド/入力タグでブラウザのオートコンプリートを無効にするにはどうすればよいですか?
-
[解決済み] フォーム送信のようなJavaScriptのポストリクエスト
-
[解決済み] jQuery AJAX送信フォーム
-
[解決済み] ユーザーがEnterキーを押してフォームを送信できないようにする
-
[解決済み] 1つのフォームに2つの送信ボタンがある
-
[解決済み] Twitter Bootstrap Form File Element Upload Button(ファイルアップロードボタン
-
[解決済み] jQueryでフォームフィールドをクリアする
-
[解決済み】Qt-Designerでレイアウトが自動拡張される。
-
[解決済み】QLabel: テキストと背景の色を設定する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] QDateTime::fromStringの使い方は?
-
[解決済み] QVariant::UserType 型の QVariant が期待された型であることを確認するにはどうすればよいですか?
-
[解決済み] Qml タイマーが正しい間隔で起動しない
-
[解決済み] Qtのフォームレイアウト機構を理解する
-
[解決済み] qtnetwork4.dllという正しいファイルが見当たりません。
-
[解決済み] qmake: ''の Qt インストールが見つかりませんでした。
-
[解決済み] QTextEditの内容を表示するQTextBrowserを持つにはどうしたらよいですか?
-
Qt signal and slot usage error : error: no matching function for call to ...... Qt signal and slot usage error : error: no matching function for call to ...... Qt signal and slot usage error: error
-
CMakeラーニングサマリー
-
[解決済み】QLabel: テキストと背景の色を設定する