Не работает код создания виджета

Написала код:

import sqlite3

from PyQt5.QtWidgets import QWidget, QApplication, QListWidgetItem
from PyQt5.uic import loadUi
import sys

from pyqt5_plugins.examples.exampleqmlitem import QtCore

#конструктор для супер класса:
class Window(QWidget):
    def __init__(self):# функция инициализации, здесь прописываются события которые приводят к изменениям и которые мы фиксируем
        super(Window, self).__init__()
        loadUi("main.ui", self)# загружаю пользовательский интерфейс
        self.calendarWidget.selectionChanged.connect(self.calendarDateChanged) #виджет календаря, если изменяется, подключаемся,вызываем самостоятельно
        self.calendarDateChanged()#вызываю функцию списка
        self.pushButton.clicked.connect(self.saveChanges)



    #функция извлечет выбранную дату и обновит список задач
    def calendarDateChanged(self):#определить дату изменения календаря
        print("Дата изменилась")
        dateSelected= self.calendarWidget.selectedDate().toPyDate() #извлечь дату, дата выбрана в виджете календаря, вывод изменен, преобразовываем в вид(год, месяц,день) через тире
        print("Дата выбрана:", dateSelected)
        self.updateTaskList(dateSelected)#хочу передать выбранную дату в обновленный список задач,

    def updateTaskList(self, date):
        db = sqlite3.connect("data2.db")
        cursor = db.cursor()#запрашиваю курсор

        query = "SELECT task, completed FROM tasks WHERE date = ? "#что я запрашиваю, из какой таблицы, дату указываем сами поэтому пока ставим вопросительный знак,
        row = (date, )
        results = cursor.execute(query, row).fetchall()#курсор выполняет запрос, передаю строку которая содержит дату, выбери все
        for result in results:
            item = QListWidgetItem(str(result[0]))#получаю результат, добавляю его в виджет списка очередей
            item.setFlags(item.flags() | QtCore.Qt.ItemIsUserCheckable)#элемент виджета спискка, флаг, получаем флажок, берем заранее установленные флажки, добавлем флаг)
            if result[1] == "YES":
                item.setCheckState(QtCore.Qt.Checked)  # делаем так чтобы изначально задачи не были отмечены
            elif result[1] == "NO":
                item.setCheckState(QtCore.Qt.Unchecked)  # делаем так чтобы изначально задачи не были отмечены
            self.tasksListWidget.addItem(item)

    def saveChanges(self):
        db = sqlite3.connect("data2.db")
        cursor = db.cursor()  # запрашиваю курсор
        date = self.calendarWidget.selectedDate().toPyDate()


        for i in range(self.tasksListWidget.count()): #для каждого элемента в виджете списка, количество элементов
            item = self.tasksListWidget.item(i)
            task = str(item)

            if item.checkState() == QtCore.Qt.Checked:#проверить установлен ли флажок
                query = "UPDATE tasks SET completed = 'YES' WHERE task = ? AND date = ?" #запрос, команда обновления, обновить задачи
            else:
                query = "UPDATE tasks SET completed = 'NO' WHERE task = ? AND date = ?"

            row = (task, date, )#значения вопросительных знаков
            cursor.execute(query, row)#запрос и строка
        db.commit()#зафиксировать изменения в базе данных


#определяю основную часть моего кода
if __name__=="__main__":
    app = QApplication(sys.argv) #создаю приложение арр,передаю аргументы очереди
    window = Window()#определяем виджет, после приложения
    window.show()#показать окно
    sys.exit(app.exec())#выйдите из системы

Выдал нужное окно, но кнопка pushButton не нажимается, по идее она должна сохранять отмеченные или нет значки, но не сохраняет.


Ответы (0 шт):