有人可以帮我解决这个小问题。我试图在屏幕右侧完全显示四个随机数字,但是将一个空格分开,我需要更改每个数字的大小。 我知道“字体”用于更改标签文本的大小,但这也会改变标签的大小。 最后,我想知道如何在屏幕右侧放置不同大小的随机数?
from Tkinter import *
import math
from random import randrange
number=Tk()
number.geometry("1308x720")
number.config(bg="black")
ECG=randrange(0,1000)
SP=randrange(0,1000)
PLES=randrange(0,1000)
show=randrange(0,1000)
c1=StringVar();c2=StringVar();c3=StringVar();c4=StringVar()
c1.set(ECG);c2.set(SP);c3.set(PLES);c4.set(show)
valor_c1=Label(number,textvariable=c1,width=3,height=1,fg="red",anchor="ne",bg="green").grid(row=0,column=2)
valor_c2=Label(number,textvariable=c2,width=3,height=1,fg="blue",anchor="ne",bg="snow").grid(row=4,column=2)
valor_c3=Label(number,textvariable=c3,width=3,height=1,fg="cyan",anchor="ne",bg="grey").grid(row=8,column=2)
valor_c4=Label(number,textvariable=c4,width=3,height=1,fg="gold",anchor="ne",bg="blue").grid(row=16,column=2)
number.mainloop()
答案 0 :(得分:1)
根据随机值更改width
选项。并为sticky=E
电话指定grid
(E =东,右)。
Label(number,textvariable=c1,width=int(c1.get())//10,height=1,fg="red",anchor="ne",bg="green").grid(row=0,column=2, sticky=E)
Label(number,textvariable=c2,width=int(c2.get())//10,height=1,fg="blue",anchor="ne",bg="snow").grid(row=4,column=2, sticky=E)
Label(number,textvariable=c3,width=int(c3.get())//10,height=1,fg="cyan",anchor="ne",bg="grey").grid(row=8,column=2, sticky=E)
Label(number,textvariable=c4,width=int(c4.get())//10,height=1,fg="gold",anchor="ne",bg="blue").grid(row=16,column=2, sticky=E)
顺便说一下,您要指定grid
的返回值。 grid
什么都不返回;所以valor_c*
都是None
。
还添加以下行以将单元格对齐到屏幕右侧(通过使列2增长,请参阅grid_columnconfigure
):
number.grid_columnconfigure(2, weight=1)