Я не понимаю, почему в книге Быстрое программирование с помощью Python и Qt , контекстное меню добавляется в центральный виджет, вызывая addActions()
в главном окне (self
), вот так (стр. 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
, выше)!Я совершенно не понимаю, почему в книге используется первый фрагмент выше, а не последний ... Помогите!:)