QMabu里面的QLabel

时间:2014-04-18 19:54:49

标签: python qt pyqt pyqt4

我正在尝试将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 :(得分:0)

在实例化QMenu

时传递QWidgetAction个对象
action = QWidgetAction(contextMenu)

您的代码在我的信号/插槽设置中运行良好。