저는 PyQt 질문을 꽤 간단하게 가지고 있습니다. (Python 3.4, PyQt 4.11.3, Qt 4.8.5) Qt Designer (Ui_Dialog)를 사용하여 매우 간단한 대화 상자를 만들었습니다. 이 개체에는 QPushButton, QLineEdit 및 QListWidget이 있습니다. Ui_Dialog에서 상속받은 다른 객체를 작성하고 QLineEdit의 returnPressed 신호를 설정하여 QListWidget에 텍스트를 추가해야합니다. 불행히도, 이것은 작동하지 않습니다.PyQt : ListWidget.insertItem이 표시되지 않습니다.
여기 내 코드입니다 : 터미널 미세 라인 편집기 인쇄에
import sys
from PyQt4 import QtGui
from dialog import Ui_Dialog
class ImDialog(QtGui.QDialog, Ui_Dialog):
def __init__(self):
super(ImDialog, self).__init__()
self.setupUi(self)
self.lineEdit.returnPressed.connect(self.additem)
self.pushButton.clicked.connect(self.listWidget.clear)
def additem(self):
text = self.lineEdit.text()
print(text)
self.listWidget.insertItem(0, text)
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
ui = ImDialog()
ui.show()
sys.exit(app.exec_())
텍스트 만이 listWidget에 추가되지 않습니다.
흥미롭게도 sys.exit 행을 주석 처리하고 IPython 터미널에서이 텍스트를 실행하면 문제없이 listWidget에 원하는만큼 텍스트를 추가 할 수 있습니다.
[In 1]: %run that_program.py
[In 2]: ui.listWidget.insertItem(0, "Test") # This works fine
(IPython 외부에서)이 작업을 수행 할 제안이 있으면 누구나 도움을 받으실 수 있습니다. 감사합니다
매우 유용한 팁 주셔서 감사합니다. 나는이 머리로 벽에 머리를 치고 있었다. 나는 그것이 내가 생각했던 것을 실제로하고 있었기 때문에 기쁘다. 앞으로 이러한 기본 동작을주의해야합니다. – Ryan