Приложение PyQt 5 аварийно завершает работу и/или работает со сбоями по неизвестным причинам.Python

Программы на Python
Anonymous
Приложение PyQt 5 аварийно завершает работу и/или работает со сбоями по неизвестным причинам.

Сообщение Anonymous »

Итак, у меня есть программа, в которой есть виджет списка, заполненный элементами. При двойном щелчке (активации) по элементу появляется сообщение, а затем элемент исчезает, а если я нажму на кнопку "Загрузить!" кнопку в приложении, элемент не должен появиться снова. Однако есть всего две проблемы. Пока кнопка «Загрузить!» Кажется, что кнопка всегда работает идеально, активация элемента иногда может привести к сбою графического интерфейса, а если он не выходит из строя, по какой-то причине он иногда активирует два элемента один за другим. Когда он не вылетает и не активирует два элемента одновременно, он работает именно так, как ожидалось. При сбое графического пользовательского интерфейса обратная трассировка не отображается.
Соединения для элементов списка и кнопки:

Код: Выделить всё

def on_item_activated(item):
setting(item, listWidget, feed, dict1, dictQ)

listWidget.itemActivated.connect(on_item_activated)
button = QPushButton("Load!")

def viewer():
viewing(feed, listWidget, dict1)
btnconnect = button.clicked.connect(viewer)
Что делает нажатие на элемент/кнопку:

Код: Выделить всё

def moveToQ(entryDel, listWidget, dict1, dictQ):
dictQ[entryDel] = dict1[entryDel]
del dict1[entryDel]
row = 0
listWidget.clearSelection()
listWidget.clear()
for i in list(dict1.keys()):
#print("Hi")
listWidget.insertItem(row, i)
row += 1

def setting(item, widget, feed, dict1, dictQ):
message = QMessageBox()
for entry in list(dict1.keys()):

if (item.text() == entry):
message.setText(dict1[entry])
message.exec_()
moveToQ(entry, widget, dict1, dictQ)

def viewing(feed, listWidget, dict1):
#print("Hi")
listWidget.clear()
row = 0
for x in list(dict1.keys()):
listWidget.insertItem(row, x)
row += 1
Изначально я использовал лямбда-функции для соединений. Найдя предложения использовать вместо этого слоты, я отказался от лямбда-функций. Однако результаты остались неизменными.

Подробнее здесь: https://stackoverflow.com/questions/783 ... wn-reasons

Вернуться в «Python»