Я написал скрипт, который переключается между виджетами каждые 10 секунд.Эта программа предназначена для запуска день / ночь без каких-либо взаимодействий.Программа работает на Raspberry Pi 3 Model B. Код выполняется очень хорошо и переворачивается между виджетами, однако через некоторое время он останавливается и выдает ошибку «python3: double free или коррупция (! Prev)»
Я использовал GDB, чтобы отследить проблему.однако я получаю следующую ошибку: «Обратный ход остановлен: предыдущий кадр идентичен этому кадру (поврежденный стек?)»
Я добавил операторы печати во всем своем коде, и я смог добавить ошибку в следующий вызов метода,Отрезано ниже
Чтобы убедиться, что код не работает в методе setCurrentIndex (ключ), как показано ниже, я прокомментировал отсканированный и запустил программу.программа не выдала ошибку, но я не смог переключаться между виджетами.
def __init__(self):
self.labels = dict()
self.groups = dict()
self.frame = ""
self.widgets= QtWidgets.QStackedWidget()
self.setup_ui()
self.size = 0
def setup_ui(self, frame):
self.init_groups() # This method creates all the widgets and adds it to self.widgets
self.widgets.setCurrentIndex(0)
layout = QtWidgets.QVBoxLayout()
layout.addWidget(self.widgets)
self.setLayout(layout)
def flip_widget(self, key):
print("\tflip_start")
self.window.setCurrentIndex(key) # PROBLEM COMES FROM HERE
print("\tflip_done")
Ожидаемый результат - другой виджет каждые 10 секунд. Фактические результаты изменяются через 2-8 часов в коде.Изначально код работает нормально и корректно меняет виджеты.Однако через некоторое время он существует, и я получаю следующую ошибку: «python3: двойное освобождение или повреждение (! Prev)»
Может кто-нибудь подсказать мне, как решить проблему, или найти альтернативный способ переключения между виджетами,Ожидается, что виджеты будут повторяться после цикла