Сдвиг Label по центру
Пытаюсь установить label так, чтобы его текст фокусировался по центру и сам лейбл занимал два колюмна - вних стоят левые и правые кнопки. Задача частично решена, но есть проблема с самим текстом, и тем, что justify заставляет этот лейбл выходить за границы своего колюмна. На картинке результат работы текущего кода
А хочу получить вот так
Не понимаю, как реализовать то, что мне нужно.
Буду ждать помощи, спасибо.
from tkinter import *
class App:
def __init__(self):
self.root=Tk()
self.root.title('Practice app')
self.root.geometry('150x70')
def create(self):
frame=Frame(self.root)
frame.pack()
lblText=StringVar(value='None')
self.label=Label(frame,textvariable=lblText,bg='gray')
Button(frame, width=5, heigh=1, text='Red', command= lambda:self.setColor('red',lblText)).grid(row=0,column=0)
Button(frame, width=5, heigh=1, text='Green',command= lambda:self.setColor('green',lblText)).grid(row=0,column=1, padx=50)
Button(frame, width=5, heigh=1, text='Cyan',command= lambda:self.setColor('cyan',lblText)).grid(row=1,column=0)
Button(frame, width=5, heigh=1, text='Pink',command= lambda:self.setColor('pink',lblText)).grid(row=1,column=1)
self.label.grid(row=2,column=0, sticky='we', columnspan=2)
def setColor(self,color,param):
self.label.config(bg=color)
param.set(color)
def run(self):
self.create()
self.root.mainloop()
app=App()
app.run()
Ответы (1 шт):
Автор решения: LG Блоха
→ Ссылка
Решением модет стать закидванием текста между колоннами и дать этому тексту padx=25. Главное еще не забыть дать лейдлу columnspan=3 и получится вот такой вот скрипт:
from tkinter import *
class App:
def __init__(self):
self.root=Tk()
self.root.title('Practice app')
self.root.geometry('150x70')
def create(self):
frame=Frame(self.root)
frame.pack()
lblText=StringVar(value='None')
Label(frame,text=" ").grid(row=0,column=1,padx=25)
Label(frame,text=" ").grid(row=1,column=1,padx=26)
self.label=Label(frame,textvariable=lblText,bg='gray')
Button(frame, width=5, heigh=1, text='Red', command= lambda:self.setColor('red',lblText)).grid(row=0,column=0)
Button(frame, width=5, heigh=1, text='Green',command= lambda:self.setColor('green',lblText)).grid(row=0,column=2)
Button(frame, width=5, heigh=1, text='Cyan',command= lambda:self.setColor('cyan',lblText)).grid(row=1,column=0)
Button(frame, width=5, heigh=1, text='Pink',command= lambda:self.setColor('pink',lblText)).grid(row=1,column=2)
self.label.grid(row=2,column=0,columnspan=3,sticky="we")
def setColor(self,color,param):
self.label.config(bg=color)
param.set(color)
def run(self):
self.create()
self.root.mainloop()
app=App()
app.run()


