QMenu中的QLabel

3 投票
1 回答
1842 浏览
提问于 2025-04-18 03:19

我想在一个 QLabel 中添加到一个 QMenu,因为我需要让文字自动换行。但是这样做后,菜单里只出现了一行空白。

#!/usr/bin/env python3

import os
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *

class My(object):
    def __init__(self):
        self.qapp = QApplication(sys.argv)
        self.status_icon = QSystemTrayIcon(QIcon.fromTheme('edit-delete'))
        contextMenu = QMenu()

        label = QLabel('foobar')
        action = QWidgetAction(self.qapp)
        action.setDefaultWidget(label)
        contextMenu.addAction(action)

        self.status_icon.setContextMenu(contextMenu)

    def run(self):
        self.status_icon.show()
        self.qapp.exec_()

if __name__ == '__main__':
    My().run()

systrayicon

我哪里做错了呢?

1 个回答

0

在创建 QWidgetAction 的时候,传入一个 QMenu 对象。

action = QWidgetAction(contextMenu)

你的代码在我的信号/槽设置中运行得很好。

撰写回答