18

Qt Designerで「ウィジェット」を作成し、約12個のコントロールを水平方向に編成しました。とvert。レイアウト。奇妙なことに、フォーム全体の幅が275ピクセルに設定されている場合、すべての水平レイアウトは、幅が約400ピクセルの大きなサイズになります。中に含まれているボタンなどは、フォームに対して幅が広すぎます。ウィジェットフォームのサイズを垂直または水平に変更すると(最大幅がオフになっている場合もあります)、さまざまなレイアウトのサイズが変更されません。幅(または最小幅、または最大幅)を手動で設定すると、コントロールのサイズに影響する場合がありますが、レイアウト内の間隔には影響しません。一部のコントロールを上部に、その他のコントロールを下部に配置し、間に柔軟なスペースを空けるために挿入されたスペーサーは、まったく機能しません。

私が見落としている(おそらく)明らかなことは何ですか?

(私は通常、アプリケーションやGUIプログラマーではなく、この点では完全な穴居人です。)

4

1 に答える 1

45

自分を責めないでください。Qt のレイアウト ロジックは、扱い始めると少し混乱すると思います。おっしゃる通り、フォームの内容が「つながっている」わけではありません。「centralWidget レイアウト」の設定を怠っていると思います。次のことを試してください。

  1. QtCreator でダブルクリックしてフォームを開きます (QtDesigner はあまり使用しませんが、エディターのレイアウトは両方のツールでほぼ同じだと思います)。

  2. 右上のウィンドウ (「Object-Class」列が 2 つあるウィンドウ) に移動し、ルート オブジェクト (MainWindow など) でマウスを右クリックします。

  3. コンテキスト メニューが表示されます。[レイアウト] (最後のメニュー項目) をクリックし、[垂直方向にレイアウト] または [水平方向にレイアウト] を選択します。

ここに画像の説明を入力

これらのアクションは、centralWidget オブジェクトにレイアウトを作成します。「Object-Class」ウィンドウで「centralWidget」を選択すると、(右下の)Property-Value ウィンドウでレイアウト プロパティを表示および変更できます。それらはリストの最後のプロパティです。

さらに重要なことに、centralWidget にレイアウトを追加した後、フォームのコンテンツはフォームのサイズに合わせてサイズ変更し、制限する必要があります。

これが役立つことを願っています。

于 2011-03-18T22:01:00.753 に答える