У меня есть файл 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')