2

アプリケーション用の特別なコンテキスト メニューを作成したいと考えています。メニューの形状と動作は、標準のコンテキスト メニューとは異なる場合があります。

たとえば、それらを円形に描画したり、メニュー エントリを右クリックして、そのメニュー項目に関する別のメニューを開くことができるようにしたいと考えています。

もちろん、アクションベースのメニューなどを備えている現在のフレームワークと可能な限りそれらを統合したいと考えています (しかし、どのプロパティが Qt フレームワークに「適合」するメニューを持つべきかについてはわかりません) )。

それで、私の質問は、どこからこれを実装し始めるべきですか? QMenu は QWidget を継承しているようですが、カスタム QWidget を実装するだけで十分ですか? 代わりに QMenu を継承し、カスタム グラフィックスとイベント処理で拡張する必要がありますか?

ありがとう!

4

1 に答える 1

3

私はあなたがQMenuそれをカスタマイズするために多くを求めていると思います。QWidgetクリッピング ビットマップ ( )から派生して設定する独自のクラスを作成し、自分QWidget::setMaskで実装することをお勧めしpaintEventます。おそらく、ボタンの押下処理から派生させるQAbstractButtonか、取得する方がよいでしょう。QPushButtonQActions は、ここではあまり役に立ちません。

于 2013-01-23T23:52:37.370 に答える