3

次の構造例を持つQtアプリケーションで垂直メニューを作成しようとしています:

    言語
      |--> 選択
         |--> 英語
      |--> ロード
    画像
      |--> 保存形式
         |--> JPEG
         |--> ビットマップ
      |--> JPEG 品質
         |--> 超高
         |--> 高
         |--> 低

等々。QMenuBar理想的には、トップ レベルのメニュー項目だけでなく、すべてのサブメニューも実装するために使用したいと考えています。これらのさまざまなオプションをトリガーするために使用できるシグナル/スロットも利用したいと思います。オプションの中には、オンとオフのさまざまなものがあり、選択した選択肢をチェックマークなどですばやく反映できると理想的です。

をレイアウトしてQMenuBar、 に収納したときに上または下に表示させることができますQVBoxLayout。ただし、私がやりたいことは、その向きを水平から垂直に変更することです。私は Qt プログラミングに関して初心者であり、この機能を得るために使用する適切な関数またはウィジェットを検索しても得られませんでした。

すべての指針とヒントに感謝します。

これは、私が達成しようとしていることを示す画像です。

メニュー構造

ユーザーは「センサー ディスプレイ」を選択し、3 つのサブオプション (圧力、パン & チルト、放射線) が表示され、デフォルトで最初のオプション (圧力) に移動します。オフ)。

上記のテキスト メニューで示した「ツリー ビュー」とは対照的に、サブメニューはすべて横方向に表示する必要があります。

よろしく

4

1 に答える 1

2

上の画像に似たメニューを実装しました。私はそれを完全に QML で構築し、C++ ソース コードからすべてのデータ モデル、シグナル、およびスロットを統合しました。

出発点として、 RSS ニュースの例を確認してください。この例では、QML を使用して水平メニューを作成する方法を示しています。

上記のモックアップを作成するための基本は次のとおりです。

  • 3 つの QML リスト ビューを作成する必要があります (データ モデルにリストを入力し、リスト内の各要素がデリゲートでどのように見えるかをフォーマットします)。
  • ロジックは C++ または QML で記述できます。リストが非常に長く複雑になる場合は、状態ベースのアプローチを使用することをお勧めします。最初の列の 1 つのリスト要素をクリックすると、2 番目のリストを表示/非表示/スクロールする必要があります。

QML リスト ビュー要素を適切なシグナルとスロットに接続すると、上記のすべてを C++ で実行できます。

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

于 2012-10-03T20:52:42.320 に答える