0

クロムのように、QML を使用して単一のメニュー項目を持つメニューを実現したいと考えています。3 つの水平バーがあるこのボタンがあり、クリックすると 1 つのメニューが表示されます。Firefox の最近のバージョンも同じ原則に従います。アプリケーションの GUI で水平方向のスペースを無駄にしすぎないようにし、ウィンドウの幅全体を占める通常のメニューを非表示にします。

この GUI を QML で正確に再現することはできませんでした。ApplicationWindow私が見たところから、 QMLを使用してから を使用できますがMenuBar、ウィンドウの幅全体を使用できます...または、トグルボタンを使用してメニューをトリガーし、スタンドアロンMenuとそのpopup()メソッドを使用しますが、ポップします- メニューを開くボタンの真下ではなく、カーソルの真下に移動します。これは見栄えがよくありません。これは、コンテキスト メニューのメカニズムをより悪用しています。

ウィンドウ内のカスタム ウィジェットとなる偽のメニューを作成することはできましたが、アプリケーション ウィンドウを超えて拡張することはできませんでした。chrome のように、このボタンをウィンドウの右端に配置するので、このような動作はほぼ必須です。

純粋な QML (C++ なし) でその動作を正確に達成することは可能ですか?

4

1 に答える 1

1

ここで私が行ったことは、私が言及した最後のオプションである、ウィンドウ内の偽のメニューです。キャンバスを使用して描画しているため、メニューからメニュー切り替えボタンへの少し先のとがった矢印にすることができます.これはFirefoxでも行われています.

私が言ったマイナスは、メニューがウィンドウの外に出られないことと、すべてが非常に手動であることです(メニュー項目のマウスオーバー効果...)ので、私はまだ他の解決策に興味があります.

編集: しばらくして、私のアプローチの大きなプラスに気づきました。メニューにラベルだけでなく、カスタムウィジェットを配置できます。ですから、今ではそれが絶対に正しいアプローチだと思います。

于 2015-01-17T18:45:54.530 に答える