Почему не возвращаются значения text() и styleSheet()?
Пишу код на Python и SQLite и тут возникает проблема: значения text() и styleSheet() возвращаются как "None", хотя и текст и таблица стилей есть. Из-за чего возникает проблема и как ее можно решить? Заранее спасибо.
def load(self):
cur = self.con.cursor()
sql = '''INSERT INTO Задачи(Название, label, Текст, Статус, Дата, LCD, Время, kol, kol_1, kol_2)
VALUES(?, ?, ?,
?, ?, ?, ?, ?, ?, ?) '''
rezult = cur.execute(sql, ("self.widget_{}".format(self.i),
'self.label_{}'.format(self.i),
str(exec('self.label_{}.text()'.format(self.i))),
str(exec("self.widget_{}.styleSheet()".format(self.i))),
str(self.date),
'self.lcdNumber_{}'.format(self.i),
"{}:{}".format(self.t.hour(), self.t.minute()),
str(self.kol),
str(self.kol_1),
str(self.kol_2)))
self.con.commit()
Ответы (1 шт):
Автор решения: gil9red
→ Ссылка
Вместо exec используйте eval:
eval('self.label_{}.text()'.format(self.i))
и
eval("self.widget_{}.styleSheet()".format(self.i))
Но лучше не использовать eval/exec, а честно поместить виджеты в списки (или другие коллекции) и работать с ними через цикл