こんにちは、みんな、
一部のデータに応じて、動的に入力された QMenu を生成するコードがいくつかあります (これを thisMenu と呼びます)。QMenu thisMenu が作成され、いくつかの「メイン」QWidget を親として取り、この QWidget 内の QMenuBar に追加されます (menuBar.addMenu(&thisMenu)。後で、ユーザーがコンテキスト メニューから thisMenu にアクセスできるようにします (ユーザーが QWidget の一部を右クリックすると、QMenu (contextMenu と呼ばれる) がポップされ、前の QMenu がサブメニューとして表示されます)。
contextMenu.addMenu(&thisMenu) で最初に作成した QMenu を再利用すると、contextMenu が適切なグローバル位置にポップしたとしても、thisMenu は常に他の位置に変換され、場合によっては contextMenu の上や下に表示されることがわかります。
これがペアレンティング チェーンにリンクされていることをテストできます: thisMenu は contextMenu の子ではありません。contextMenu の子として作成すると、すべて問題ありません。thisMenu に似た QMenu を再作成したり、thisMenu の親を変更したりせずに、このケースをきれいに処理する方法はありますか? つまり、QMenuBar と一部のコンテキスト メニュー/QMenu の両方で thisMenu を再利用しますか? QMenuの親子チェーンを処理してQMenuを共有する適切な方法は何ですか?
ありがとうございました、