我试图在不使用函数的情况下获取Class Qthread的信号发出的值
当用户选择退出并按下GUI上的[ X ]按钮时,我正在呼叫警告框,所以我通过线程调用此警报框以确保我的GUI不会冻结。
以下是代码:
class ABC:
def __init__(self):
self.close = CloseThread() # Creating instance of QThread Class
........
........
........
def closeEvent(self, event):
button = self.close.CloseResult
self.close.start()
if button == 1:
event.accept()
else:
event.ignore()
class CloseThread(QThread):
"""Threading class which is emitting the return value according to the choice
of the user(When the message appears, if the user chooses
'Ok' then return value is 1 and if the user chooses
'Cancel'return value is 2)"""
CloseResult = QtCore.pyqtSignal(object)
def __init__(self):
QThread.__init__(self)
def close(self):
button = win32api.MessageBox(0, 'Do you want to Exit?', 'Message')
self.CloseResult.emit(button)
def run(self):
self.close()
我知道我可以通过self.close.CloseResult.connect(self.fn_name)
而不是使用self.close.CloseResult
来获取发出的值,但我不想调用另一个函数,因为这里我扩展了closeEvent
函数的范围所以我不想调用另一个函数。(实际上通过调用另一个函数,事情并没有按照预期的那样运行)
注意:使用
self.close.CLoseResult
我正在获取一个对象,那么有没有办法访问此对象的值?
那么有什么方法可以在变量中获取值而不必调用任何其他函数?