2011-07-12 18 views
1

Qt開発が初めてで、私が作業しているゲームのレベルエディタを作成しており、デザイナーのレイアウトに問題があります。Qtサイズ変更用のレイアウト

ここで私はそれが見えるようにしたいものです:

(私は画像を投稿するのに十分な担当者を持っていない、ここのリンクです:) http://img855.imageshack.us/img855/6474/editori.jpg

明らかに複数のボタンや物事があるように起こっています実際にはOpenGLのキャンバスの中に現れます。

だから私は2つの特定の質問がある:

1)私はそれを設定するにはどうすればよいので、ユーザアプリケーションウィンドウ、再サイズならば、適切にその内容を再サイズということ? ButtonをVerticalレイアウトにし、OpenGLCanvasをSplitterレイアウトにすることで、私が欲しいものに近づけることができますが、ボタンが固定されているのとは対照的に、キャンバスがボタンのサイズ幅になりますたとえば、画面の右端の100ピクセル。

2)キャンバスのスクロールを許可する簡単な方法はありますか?レベルのサイズは、画面に収まるサイズよりはるかに大きい可能性があります。その場合、キャンバスに水平および垂直スクロールバーを追加したいと思います。 (レベルが大きすぎる場合や、ユーザーがウインドウを小さくしてもはやフィットしなくなった場合)、後者の場合、実際にはスクロールバーが表示されません。これを行う簡単な方法はありますか、または手動ですべてを行う必要がありますか?

ありがとうございます!

答えて

3

内容が正しくリサイズされていない場合は、トップレベルのレイアウトを設定していない可能性があるかのように、それが聞こえます。また、スプリッタレイアウトを使用してもよろしいですか?私はこのケースであなたにどんなメリットがあるか分かりませんし、キャンバスのサイズを変更してボタンを隠すことも可能になります。多分あなたはこれを好む理由があります。にもかかわらず、デザイナーでは、正しくサイズ変更されているものと似たものを作成できます。

  • ボタンを追加して、それらを縦型レイアウトにグループ化します。
  • キャンバスを追加しています。
  • 次に、フォームを選択するか(別のウィジェットで使用されていないフォーム上を右クリックするか、オブジェクトインスペクタでフォームを右クリックして)、コンテキストメニューからレイアウト - >レイアウトを水平に選択します。

少しこれを変更することによって、あなたはキャンバスをスクロールすることができるはずです。

  • フォームにQScrollAreaウィジェットを追加します。
  • キャンバスをQScrollAreaウィジェットに移動します。
  • 以前のように、フォーム上のスクロールエリアウィジェットまたはオブジェクトインスペクタで右クリックし、レイアウト - >一部のレイアウトオプションを選択してレイアウトを適用します。私はこのためにVerticalレイアウトを使用しました。
+0

ありがとう! – numegil

+0

とにかくトップレベルレイアウトを設定するとはどういう意味ですか?どのように設定しますか? – swdev

+0

フォームまたはウィジェットは基本的にGUI要素のツリーです。最上位の要素は、ツリーのルート、つまりフォームまたはウィジェットです。その要素にレイアウトが適用されていない場合、Qtはサイズ変更時の動作を認識しません。最上位の要素を設定するには、別のレイアウトが存在しない場所で右クリックするか、オブジェクトインスペクタ内で右クリックする必要があります。次に、コンテキストメニューから「レイアウト」 - 「WhateverLayoutYouWant」を選択します。 – foven

関連する問題