У меня довольно простой вопрос PyQt. (Python 3.4, PyQt 4.11.3, Qt 4.8.5) Я создал очень простой диалог с помощью Qt Designer (Ui_Dialog). У этого объекта есть QPushButton, QLineEdit и QListWidget. Я написал еще один объект, который наследуется от Ui_Dialog, и настроил сигнал returnPressed от QLineEdit, который должен добавить текст в QListWidget. К сожалению, это не работает.
Вот мой код:
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), я был бы признателен за помощь. Спасибо