我正在使用以下Logger
类从外部python模块接收日志消息。如何从这个类更新GUI,例如。在UI中向用户显示错误消息?
class Logger(object):
def debug(self, msg):
print('debug : %s' % msg)
def error(self, msg):
print('error : %s' % msg)
编辑(澄清):我正在导入一个外部python模块,该模块允许使用作为参数字典传递给它的logging.Logger
实例来监听来自它的发出的日志消息。我正在使用上面的Logger Class
代码在我的GUI应用程序中监听这些日志消息,这很好用,我的问题是如何在GUI上显示这些消息。我尝试使用self.ui.someLabel.setText(msg)
,但这不起作用,我知道这是一个范围问题,但是如何让这个工作,因为我在这里学习python。
答案 0 :(得分:0)
例如,假设您已将mainwindow和logger初始化为一个文件,如下所示:
mainWindow = MainWindow()
logger = Logger()
您应该向您的记录器提供对mainWindow的引用:
logger.mainWindow = mainWindow
然后你可以像这样使用它:
class Logger(object):
def debug(self, msg):
self.mainWindow.ui.someLabel.setText(msg)
print('debug : %s' % msg)
另一种方法是在初始化时将mainWindow实例传递给Logger:
mainWindow = MainWindow()
logger = Logger(mainWindow)
然后您的Logger类将是这样的:
class Logger(object):
def __init__(self, mainWindow):
self.mainWindow = mainWindow
def debug(self, msg):
self.mainWindow.ui.someLabel.setText(msg)
print('debug : %s' % msg)