from PyQt5 import QtWidgets, uic from Database import Manager from MyLib import Events, GUI import Forms, General class Form(QtWidgets.QWidget): def __init__(self, parent: QtWidgets.QMainWindow): QtWidgets.QWidget.__init__(self) ClassForm, _ = uic.loadUiType(Forms.Directory + 'CreateDatabase.ui') self.ui = ClassForm() self.ui.setupUi(self) self.parent = parent #name of form self.setWindowTitle('Form for creating database') self.widget = QtWidgets.QWidget(self) layoutV = QtWidgets.QVBoxLayout() layoutV.addWidget(self.ui.label) layoutV.addWidget(self.ui.ButtonCreateDatabase) layoutV.addWidget(self.ui.MessageList) self.widget.setLayout(layoutV) self.setLayout(layoutV) self.ui.ButtonCreateDatabase.clicked.connect(self.CreateDatabase) ... def event(self, current_event: Events.EventForMessageList) -> bool: if current_event.type() != General.type_event: return False self.ui.MessageList.addItem(current_event.message) #alive gui q_app = QtWidgets.QApplication.instance() q_app.processEvents(); return True
Форма отлично создается, во время хода выполнения ей прибывают события нужного типа с непустыми значениями в поле message, они без ошибок обрабатываются, но в QListWidget новых строк не появляется. Это поле всегда остается полностью пустым.
Причем такой код дает верный результат (в отладчике я вижу текст, который должен отображаться в QListWidget):
quantity = self.ui.MessageList.count() self.ui.MessageList.item(quantity-1).text() self.ui.MessageList.item(quantity-2).text()
Почему?