Я использую QT для создания моего графического интерфейса и декоратор для записи журнала. Когда я использую декоратор в слоте, графический интерфейс сокрушается.
Код:
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
def LogInfos(func):
def wrapper(*s, **gs):
print('log')
ret = func(*s, **gs)
return ret
return wrapper
class Window(QWidget):
def __init__(self):
super(Window, self).__init__()
layout = QHBoxLayout(self)
btn = QPushButton('test')
layout.addWidget(btn)
btn.clicked.connect(self.testSlot)
@LogInfos
def testSlot(self):
print('test slot')
@LogInfos
def testLog():
print('test log')
if __name__ == '__main__':
testLog()
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
Я проверил, что функция декоратора в порядке, а графический интерфейс в порядке после удаления декоратора.