Answer the question
In order to leave comments, you need to log in
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 questionAsk a Question
731 491 924 answers to any question