D
D
Devil_Evil20212021-05-16 23:20:51
Python
Devil_Evil2021, 2021-05-16 23:20:51

How to change (activate/deactivate) the qcheckbox flag immediately at program start?

I have a data.txt file where the qcheckbox(true or false) state is saved. How can I set the state of qcheckbox to match the last saved state when I run the program?
It doesn't come out somehow.
I thought that if you read "true" from the file and then write self.checkBox.isChecked() only for "true", then qcheckbox is activated.

# чтение файла с сохраненным состоянием 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')

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question