Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Tkinter对齐文本_Python_Tkinter - Fatal编程技术网

Python Tkinter对齐文本

Python Tkinter对齐文本,python,tkinter,Python,Tkinter,我正在使用Tkinter对齐屏幕文本。我未能正确对齐要显示的文本。目前,这是显示在一个24英寸的显示器,我无法得到一些文字去所有的方式到屏幕的右边。我已经尝试了 sticky=E 但它没有将文本向右移动 来自未来进口部的 导入matplotlib matplotlib.use('Agg') 从Tkinter进口* 导入tkFont 将RPi.GPIO导入为GPIO 导入时间 导入日期时间 win=Tk() ###########################################

我正在使用Tkinter对齐屏幕文本。我未能正确对齐要显示的文本。目前,这是显示在一个24英寸的显示器,我无法得到一些文字去所有的方式到屏幕的右边。我已经尝试了

sticky=E 
但它没有将文本向右移动

来自未来进口部的

导入matplotlib
matplotlib.use('Agg')
从Tkinter进口*
导入tkFont
将RPi.GPIO导入为GPIO
导入时间
导入日期时间
win=Tk()
###################################################################################################
#####################################配置##############################################
###################################################################################################
#根据此班次的真实目标值进行更改
目标值=600
#根据该班次显示的目标值进行更改
目标显示=480
#若要更改显示尺寸,请尝试通过增减此值来更改标签
尺寸=120
###################################################################################################
###########################################结束###################################################
###################################################################################################
GPIO.setmode(GPIO.BOARD)
GPIO.setup(40,GPIO.IN,pull\u up\u down=GPIO.PUD\u down)
实际值=IntVar()
实际_值。设置(0)
实际值=0
效率\ u值=IntVar()
效率值设置(100)
StartTime=datetime.datetime.now()
当前状态=0
以前的状态=0
myFont=tkFont.Font(family='Helvetica',size=size,weight='bold')
win.attributes(“-全屏”,True)
背景='白色'
win.configure(后台=后台)
def getNumberOfMinutes(a,b):
c=b-a
x=divmod(c.天*86400+c.秒,60)
返回x[0]
def RESET():
全球启动时间
全球效率值
全局实际值
全球背景
全球实际成本
打印(“重置按下”)
实际_值。设置(0)
实际值=0
效率值设置(100)
StartTime=datetime.datetime.now()
背景='白色'
win.configure(后台=后台)
def任务():
全球启动时间
全局目标值
全球实际成本
全球背景
全球效率值
全局先前状态
全局当前状态
有效值=0
如果(实际值=目标值):
TimeNow=datetime.datetime.now()
currentState=GPIO.input(40)
如果(currentState==1和previousState==0):
实际中心=实际中心+1
实际中心=int(实际中心)
实际值设置(实际值)
previousState=当前状态
分钟=getNumberOfMinutes(开始时间、现在时间)
如果(分钟<1):
分钟=1
如果(实际值>0):
有效值=((实际中心/分钟)/(目标值/48000))
如果(有效值>135):
有效值=135
有效值=int(有效值)
效率值。设置(效率值)
如果(有效值>=80):
背景='绿色'
elif(有效值>=70):
背景='黄色'
elif(有效值<60):
背景='红色'
win.configure(后台=后台)
赢后(500,任务)
其他:
打印“已完成”
标签(win,text=“%”,font=myFont,bg=BACKGROUND)。网格(行=2,列=30)
标签(win,text=“PCS”,font=myFont,bg=BACKGROUND)。网格(行=2,列=80)
标签(win,text=”“,font=myFont,bg=BACKGROUND)。网格(行=3,粘性=W)
标签(win,text=“Target:”,font=myFont,bg=BACKGROUND)。网格(行=4)
标签(win,text=“75”,font=myFont,bg=BACKGROUND)。网格(行=4,列=30)
标签(win,text=TARGET\u DISPLAY,font=myFont,bg=BACKGROUND)。网格(行=4,列=80)
标签(win,text=”“,font=myFont,bg=BACKGROUND)。网格(行=5,粘性=W)
标签(win,text=“Actual:”,font=myFont,bg=BACKGROUND)。网格(行=6)
标签(win,textvariable=实际值,font=myFont,bg=BACKGROUND)。网格(行=6,列=80)
标签(win,textvariable=Efficiency\u VALUE,font=myFont,bg=BACKGROUND)。网格(行=6,列=30)
赢后(500,任务)
mainloop()

您需要做的是为中间列设置一个权重。权重用于告诉列/行展开特定的速率

将此行添加到
win=Tk()下面:

然后将标签中的列更改为以下内容

Label(win,text="%").grid(row=2,column=1)
Label(win,text="PCS").grid(row=2,column=2)
Label(win,text="").grid(row=3,sticky=W)

Label(win,text="Target:").grid(row=4)
Label(win,text="75").grid(row=4,column=1)
Label(win,text=TARGET_DISPLAY).grid(row=4,column=2)
Label(win,text="").grid(row=5,sticky=W)

Label(win,text="Actual:").grid(row=6)
Label(win,textvariable=ACTUAL_VALUE).grid(row=6,column=2)
Label(win,textvariable=Efficiency_VALUE).grid(row=6,column=1)

这将移动最右侧的所有标签,然后将中间标签移动到屏幕的中间位置。

请提供一个。我们需要查看您是否为行或列赋予任何权重,以及如何将
win
放入其父项中。我有一个关于
grid()的几何体管理器工作原理的详细答案
。这将解释为什么您不能简单地使用列将小部件移动到屏幕右侧。这里:这是太多的代码。请尝试缩小范围。由于这纯粹与视觉体验有关,因此示例不应依赖于
matplotlib
RPi
win.columnconfigure(1, weight=1)
Label(win,text="%").grid(row=2,column=1)
Label(win,text="PCS").grid(row=2,column=2)
Label(win,text="").grid(row=3,sticky=W)

Label(win,text="Target:").grid(row=4)
Label(win,text="75").grid(row=4,column=1)
Label(win,text=TARGET_DISPLAY).grid(row=4,column=2)
Label(win,text="").grid(row=5,sticky=W)

Label(win,text="Actual:").grid(row=6)
Label(win,textvariable=ACTUAL_VALUE).grid(row=6,column=2)
Label(win,textvariable=Efficiency_VALUE).grid(row=6,column=1)