2017-04-03 1 views
0

QMenuいくつかのオブジェクトはツールバーとの間にQActionを共有しています。Qtグループのメニューアクションをまとめて

ここでの詳細は、他のメニューにいくつかのメニュー部分を再現したいということです。例えば、私のQMainWindowオブジェクトのメニューバーで、私は

File 
    (x) New 
    (x) Open 
    (x) Save 
    (x) ------ 
    (x) Add Sketch... 
    (-) Export... 
    (-) Import... 

のようなものを持っている。そして、いくつかのコンテキストメニューに、私は、同じアクション・オブジェクトを使用して、 (x)でマークされたアクションのみとまったく同じ構造を再現したいと思います。私はいくつかのメニューでこれをやりたい

簡単な方法は、QMainWindowメニューを構築するときに同じコードを繰り返し、構造を繰り返すコンテキストメニューを繰り返すことです。しかし、これはコードを繰り返すことで、メンテナンスの労力を倍増させることを意味します。

これをQtで直接解決する方法はありますか?

+0

これらのすべてのアクションを変数として持つクラスメニューを作成し、コンストラクタで送信するウィンドウに接続するのはなぜですか? 2( - )アクションを目的のアクションに追加します。 –

答えて

1

1つのオプションは、アクションを辞書に格納し、各サブメニューごとに異なるキーリストを保存することです。後で行う必要があるのは、単純なforを使ってメニューを構築することだけです。 (...一緒にクラス、匿名の名前空間の一部の初期化)最後に、actionsbuildMenuに利用できるmenusを作る

:ドラフトのコードは次のように見えるかもしれません。また、使用後に返されたメニューを削除することを忘れないでください。

関連する問題