PyQt - получение ошибки при попытке использовать emit
Я пытаюсь использовать Emit впервые в PyQt. Я много читал и гуглял, и я был уверен, что все правильно, но я продолжаю получать ошибки, показанные ниже. Может кто-нибудь пролить свет на то, что я делаю не так.
def checkRiskDescription(obj,form):
complete = True
if str(form.txtTitle.text()) == "":
complete = False
if len(str(form.txtOverview.toPlainText())) < 50:
complete = False
bar = form.tabRiskMain.tabBar()
if complete:
#Change Risk Description tab to Green
bar.setTabTextColor(0,QtGui.QColor(38, 169, 11, 255))
form.btnSave.enabeld = True
else:
#Change risk Description tab to Red
bar.setTabTextColor(0,QtGui.QColor(255, 0, 0, 255))
form.btnSave.enabled = False
QtGui.QWidget.emit(QtCore.SIGNAL("tabsUpdated"))
Вот ошибка
File "D:\Development\python\PIF2\PIF\risk\risk.py", line 360, in checkRiskDescription
QtGui.QWidget.emit(QtCore.SIGNAL("tabsUpdated"))
TypeError: QObject.emit(SIGNAL(), ...): first argument of unbound method must have type 'QObject'
1 ответ
Я обычно просто определяю сигнал вот так
tabsUpdated = Qt.pyqtSignal()
затем выстрелить через
self.tabsUpdated.emit()
Например
from PyQt4 import Qt
class SomeClass(Qt.QObject):
tabsUpdated = Qt.pyqtSignal()
def __init__(self):
Qt.QObject.__init__(self)
def something(self):
# bla bla loads of nice magic code bla bla
self.tabsUpdated.emit()
Конечно, сигнал может быть определен глобально в вашем файле Python.