|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
'
def context_MenuEvent(self, event): #右键菜单
context_menu = QMenu(self)
#
color_del = context_menu.addAction('删除 | 标记')
for i in ['white', 'red', 'green', 'blue', 'cyan', 'magenta', 'yellow', 'gray']:
mysekect_menu = context_menu.addAction(f"标记 | {i}")
mysekect_menu.triggered.connect(self.code_tag)
mysekect_del = context_menu.addAction('<font color="red">删除</font> | <font color="black">自选</font>')
'
设置的富文本不起作用,是怎么回事,这是pyside6的代码, 是window平台
ySide6 的 QMenu 并不会解析这些 HTML 标签,因此文本会原样显示,而不是渲染为富文本。
你可以通过 QWidgetAction,你可以在菜单项中添加自定义的 QWidget,从而实现富文本效果。
try this:
- """
- 1.QWidgetAction:
- 使用 QWidgetAction 将自定义的 QLabel 添加到菜单中。
- QLabel 支持富文本(HTML),因此可以通过 <font> 标签设置文本颜色。
- 2.label.setAlignment(Qt.AlignCenter):
- 设置文本居中对齐,使菜单项看起来更美观。
- 3.context_menu.exec_(event.globalPos()):
- 在鼠标右键点击的位置显示菜单。
- """
- from PySide6.QtWidgets import QMenu, QAction, QWidgetAction, QLabel
- from PySide6.QtGui import QColor
- from PySide6.QtCore import Qt
- class MyWindow:
- def context_MenuEvent(self, event):
- context_menu = QMenu(self)
- # 添加普通菜单项
- color_del = context_menu.addAction('删除 | 标记')
- # 添加带有颜色的菜单项
- for i in ['white', 'red', 'green', 'blue', 'cyan', 'magenta', 'yellow', 'gray']:
- myselect_menu = context_menu.addAction(f"标记 | {i}")
- myselect_menu.triggered.connect(self.code_tag)
- # 使用 QWidgetAction 添加富文本菜单项
- widget_action = QWidgetAction(context_menu)
- label = QLabel('<font color="red">删除</font> | <font color="black">自选</font>')
- label.setAlignment(Qt.AlignCenter)
- widget_action.setDefaultWidget(label)
- context_menu.addAction(widget_action)
- # 显示菜单
- context_menu.exec_(event.globalPos())
- def code_tag(self):
- print("标记操作被触发")
复制代码
|
|