Python と Qt を使用した高速 GUI プログラミングという本の中addActions() で、メイン ウィンドウ( )を呼び出すことによって中央のウィジェットにコンテキスト メニューが追加される理由がわかりませんself(p. 180):
self.addActions(self.imageLabel,
(editInvertAction, …))
は でselfあり、QMainWindowはimageLabel中央QLabelのウィジェットとして設定されています。
# Added actions will be put in a context menu:
self.imageLabel.setContextMenuPolicy(Qt.ActionsContextMenu)
self.setCentralWidget(self.imageLabel)
では、メイン ウィンドウが何らかの方法で ( を介してself.addActions()) 中央ウィジェットのコンテキスト メニューに関連付けられるのはなぜでしょうか? addActions()中央のウィジェットで直接呼び出すだけで十分ではありませんか? 実際、以下はコンテキスト メニューを作成します。
self.imageLabel.addActions((editInvertAction, …))
本の例がコンテキスト メニューをこのようにしないのはなぜですか? self.addActions(…)これは、より複雑な形式と同等ではありませんか?
PS : QMainWindow.addActions() のドキュメントには、最初の引数 ( self.imageLabel、上記) についても言及されていないことがわかります! この本が最後のスニペットではなく上の最初のスニペットを使用している理由について、私は完全に迷っています… 助けて!:)