@Devil_Evil2021

Как изменить(активировать/деактивировать) флаг qcheckbox сразу при запуске программы?

У меня есть файл data.txt, где сохраняется состояние qcheckbox(true или false). Как мне при запуске программы установить состояние qcheckbox соответственно последнему сохраненному состоянию?
Не выходит как-то.
Думал, что если прочесть из файла "true" и написать тогда self.checkBox.isChecked() только для "true", то qcheckbox активируется.

# чтение файла с сохраненным состоянием qcheckbox
with open('data.txt', "r+") as b:
            all_wordsS = []#Список со всеми словами
            line = b.readline().split()#список из слов в строчке
            while line:
                all_wordsS.extend(line)#Вставляем в список с распа ковкой
                line = b.readline().split()#Заново считываем
            flag = all_wordsS[2]
            print(flag)

# активация кнопок и виджета при запуске, если флаг был true
        if flag == 'true':
            self.checkBox.isChecked() #думал так можно будет
            self.btnEntFaceAdm.setEnabled(True)
            self.btnIdenFaceAdm.setEnabled(True)
            self.btnDeleteFaceAdm.setEnabled(True)

# деактивация кнопок при запуске, если флаг был false
        elif flag == 'false':
            self.btnEntFaceAdm.setEnabled(False)
            self.btnIdenFaceAdm.setEnabled(False)
            self.btnDeleteFaceAdm.setEnabled(False)

# отслеживание переключения флага qcheckbox и выполнение действия при изменении
        self.checkBox.stateChanged.connect(
            lambda state=self.checkBox.isChecked(), no=1: self.selectBooks(state, no))

    def selectBooks(self, toggle, no):
        if toggle == QtCore.Qt.Checked:
            #print('toggle=`{}`, поставили галочку{}'.format(toggle, no))
            if no == 1:
                #print('checked_{} -> галочка поставлена выполнилось действие'.format(no))
                self.btnEntFaceAdm.setEnabled(True)
                self.btnIdenFaceAdm.setEnabled(True)
                self.btnDeleteFaceAdm.setEnabled(True)

# запись в файл состояния флага при нажатии(изменение на true)
                with open('data.txt', "r+") as b:
                    ind = 'true'
                    all_words = []#Список со всеми словами
                    line = b.readline().split()#список из слов в строчке
                    while line:
                        all_words.extend(line)#Вставляем в список с распаковкой
                        line = b.readline().split()#Заново считываем
                    all_words.pop(2)
                    all_words.insert(2,str(ind))

                    with open('data.txt', 'w') as o:
                        for element in all_words:
                            o.write(element + '\n')
        else:
            self.btnEntFaceAdm.setEnabled(False)
            self.btnIdenFaceAdm.setEnabled(False)
            self.btnDeleteFaceAdm.setEnabled(False)

# запись в файл состояния флага при нажатии(изменение на false)
            with open('data.txt', "r+") as b:
                ind = 'false'
                all_words = []#Список со всеми словами
                line = b.readline().split()#список из слов в строчке
                while line:
                    all_words.extend(line)#Вставляем в список с распа ковкой
                    line = b.readline().split()#Заново считываем
                all_words.pop(2)
                all_words.insert(2,str(ind))

                with open('data.txt', 'w') as o:
                    for element in all_words:
                        o.write(element + '\n')
  • Вопрос задан
  • 392 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы