Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » Изменение свойства "text" объекта ttkbootstrap.Label в цикле.... [RSS Feed]

#1 Апрель 7, 2024 15:05:48

Dva2lin
Зарегистрирован: 2023-07-27
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

Изменение свойства "text" объекта ttkbootstrap.Label в цикле....

Задача стоит такая: необходимо при чтении строк excel-таблицы в нижней части окна выводить текст одного из столбцов этой таблицы. Создан виджет Label (GIU TTKBootstrap) Пробовал конфигурировать свойство “text”, пробовал использовать textvariable и методом .set() присваивать текстовое значение… Ничего не помогает - текст в нижней части окошка не выводится. Думаю, что просто не учитываю что то пустяшное, но опыта и знаний понять что не так не хватает. Ниже кусок кода функции:

    def load_parskats(self):
self.var_text = tb.StringVar()
self.var_text.set("Datu ielāde var ilgt vairākas minūtes...")
self.lbl_mess = tb.Label(self.main_frame,
text= "",
textvariable=self.var_text,
style="alarm.TLabel",
)
self.lbl_mess.grid(row=5,column=0,columnspan=3,padx=(25,25),pady=(20,0),sticky="w")
self.ent_filename["state"] = "normal"
# self.lbl_mess.configure(text="Datu ielāde var ilgt vairākas minūtes...")
if self.imp_file == None or len(self.imp_file) == 0 or self.imp_file == "":
mi.miw("Uzmanību!","Fails nav atlasīts!",1)
return
# удаляется старая оборотка
self.sql_query = "DELETE FROM "+ self.db_name + ".Gp_apgrozijumi WHERE Ap_gpid=%s"
self.db_curs.execute(self.sql_query,(self.gp_id,))
self.db_cnct.commit()
# собственно загрузка оборотки
self.wb = op.load_workbook(self.imp_file)
self.wb.save(self.imp_file)
self.s = self.wb.active
for i in range(100000000):
crit = self.s.cell(row=(i+1),column=1).value
if crit == "" or crit == " " or crit == None or crit == 0:
break
r = list()
for j in range(8):
c = self.s.cell(row=(i+1),column=(j+1)).value
if c == "" or c == " " or c == None or c == 0:
r.append(" ")
else:
r.append(self.s.cell(row=(i+1),column=(j+1)).value)
###################################################################################################
ic(r[1])
self.var_text.set(r[1])
# self.lbl_mess.configure(text=r[1])
# self.lbl_mess["text"] = r[1]
time.sleep(0.2)
###################################################################################################
self.sql_query = "INSERT INTO " + self.db_name + ".Gp_apgrozijumi (Ap_gpid,Ap_konts,Ap_postenis,Ap_sakds,Ap_sakks,Ap_db,Ap_kr,Ap_beigds,Ap_beigks) "+ \
"VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s)"
self.db_curs.execute(self.sql_query,(self.gp_id,r[0],r[1],r[2],r[3],r[4],r[5],r[6],r[7],))
self.db_cnct.commit()

self.lbl_mess["text"] = "Datu ielāde pabeigta. Noklikšķiniet uz pogas [aizveriet]."
fnc.show_alarm("load")
time.sleep(2)
self.lbl_mess.destroy()
Текст который необходимо показать - в переменной r. Буду признателен за советы.

Отредактировано Dva2lin (Апрель 7, 2024 15:06:30)

Офлайн

#2 Апрель 7, 2024 19:09:10

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1333
Репутация: +  116  -
Профиль   Отправить e-mail  

Изменение свойства "text" объекта ttkbootstrap.Label в цикле....

  
for i in range(100000000):
            crit = self.s.cell(row=(i+1),column=1).value
            if crit == "" or crit == " " or crit == None or crit == 0:
                break
            r = list()
            for j in range(8):
                c = self.s.cell(row=(i+1),column=(j+1)).value
                if c == "" or c == " " or c == None or c == 0:
                    r.append(" ")
                else:
                    r.append(self.s.cell(row=(i+1),column=(j+1)).value)
###################################################################################################
            ic(r[1])
            self.var_text.set(r[1])            
            # self.lbl_mess.configure(text=r[1])            
            # self.lbl_mess["text"] = r[1]
            time.sleep(0.2)
###################################################################################################
            self.sql_query = "INSERT INTO " + self.db_name + ".Gp_apgrozijumi (Ap_gpid,Ap_konts,Ap_postenis,Ap_sakds,Ap_sakks,Ap_db,Ap_kr,Ap_beigds,Ap_beigks) "+ \
                             "VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s)"
            self.db_curs.execute(self.sql_query,(self.gp_id,r[0],r[1],r[2],r[3],r[4],r[5],r[6],r[7],))
            self.db_cnct.commit()

в этом месте окно зависнет пока цикл не кончится. Можете вставить в конце цикла

root.update(), где root = tk.Tk()

Отредактировано xam1816 (Апрель 7, 2024 19:09:52)

Офлайн

#3 Апрель 7, 2024 21:46:26

Dva2lin
Зарегистрирован: 2023-07-27
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

Изменение свойства "text" объекта ttkbootstrap.Label в цикле....

Огромное спасибо. Сработало…

Офлайн

  • Начало
  • » GUI
  • » Изменение свойства "text" объекта ttkbootstrap.Label в цикле....[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version