Python textChanged事件未在Pyqt4中触发
为什么每当我在QLineEdit中输入一些数据时,textChanged事件不会发生Python textChanged事件未在Pyqt4中触发,python,pyqt4,textchanged,Python,Pyqt4,Textchanged,为什么每当我在QLineEdit中输入一些数据时,textChanged事件不会发生 from PyQt4.Qt import Qt, QObject,QLineEdit from PyQt4.QtCore import pyqtSlot,SIGNAL,SLOT from PyQt4 import QtGui, QtCore import sys class DirLineEdit(QLineEdit, QtCore.QObject): """docstring for DirLineEd
from PyQt4.Qt import Qt, QObject,QLineEdit
from PyQt4.QtCore import pyqtSlot,SIGNAL,SLOT
from PyQt4 import QtGui, QtCore
import sys
class DirLineEdit(QLineEdit, QtCore.QObject):
"""docstring for DirLineEdit"""
@pyqtSlot(QtCore.QString)
def textChanged(self, string):
QtGui.QMessageBox.information(self,"Hello!","Current String is:\n"+string)
def __init__(self):
super(DirLineEdit, self).__init__()
self.connect(self,SIGNAL("textChanged(QString&)"),
self,SLOT("textChanged(QString *)"))
app = QtGui.QApplication(sys.argv)
smObj = DirLineEdit()
smObj.show()
app.exec_()
对我来说,一切似乎都是正确的,我遗漏了什么?替换以下行:
self.connect(self,SIGNAL("textChanged(QString&)"),
self,SLOT("textChanged(QString *)"))
与:
或者您可以使用self.textChanged.connect
(由于名称冲突,应重命名处理程序):
哦,我已经让它像这样工作了
self.textChanged.connect(self.on\u text\u changed)
@san您的评论应该是公认的答案!另外+1表示:“或者您可以使用self.textChanged.connect
”,尽管它没有注释中的解决方案那么完整。self.lineEdit.connect(self.lineEdit,QtCore.SIGNAL(“menu()”),self.lineEdit,QtCore.SLOT(“menu()”)
引发对象::连接:没有这样的插槽QLineEdit::menu()
错误
self.connect(self,SIGNAL("textChanged(QString)"),
self,SLOT("textChanged(QString)"))
class DirLineEdit(QLineEdit, QtCore.QObject):
def on_text_changed(self, string):
QtGui.QMessageBox.information(self,"Hello!","Current String is:\n"+string)
def __init__(self):
super(DirLineEdit, self).__init__()
self.textChanged.connect(self.on_text_changed)