提问人:Mila 提问时间:11/9/2023 最后编辑:Mila 更新时间:11/9/2023 访问量:37
更改 QAction 的名称而不重新创建它
Changing a name of a QAction without recreating it
问:
我目前正在尝试使用 PyQt5 实现一个 grafic 编辑器应用程序,并致力于颜色空间之间的转换。在我的应用程序中,有一个 menuBar,其中包含用于选择要显示的频道的菜单。我在 init() 函数中以这种方式创建它:
self.menubar = self.menuBar()
self.channel_menu = self.menubar.addMenu('&Channels')
self.first_channel_action = QAction('&Red', self)
self.second_channel_action = QAction('&Green', self)
self.third_channel_action = QAction('&Blue', self)
self.all_channel_action = QAction('&All channels', self)
self.channel_menu.addAction(self.first_channel_action)
self.channel_menu.addAction(self.second_channel_action)
self.channel_menu.addAction(self.third_channel_action)
self.channel_menu.addAction(self.all_channel_action)
在不同的色彩空间中,这些通道有不同的名称,因此,当色彩空间发生变化时,我需要能够更改它们。
我想出的唯一解决方案是从菜单中删除每个操作,然后使用不同的名称重新创建它。例如,对于 HSL 色彩空间,我创建了 ,并将它们添加到self.channel_menu。self.channel_menu.removeAction(..)
self.channel_menu.addAction(..)
QAction('&Hue', self)
QAction('&Saturation', self)
QAction('&Lightness', self)
我想知道是否有办法在不删除和重新创建 QAction 的情况下更改 QAction 名称。
答: 暂无答案
评论
action.setText()
action.deleteLater()
self