我刚刚学习了tkinterr,我想用tkinter来显示小部件,我在布局上有问题,我想显示的文本居中,我能得到帮助把链接小部件上的文本放在左角,使用整洁的空格或教程建议来管理小部件上的布局吗 外观类似于this。你知道吗
import time
import serial
from Tkinter import *
serial_speed = 115200
serial_port = '/dev/ttyACM0'
ser = serial.Serial(serial_port, serial_speed, timeout=1)
class Application(Frame):
def measure(self):
ser.write("m")
data = ser.readline()
# If the answer is not empty, process & display data
if (data != ""):
processed_data = data.split(",")
self.tegangan_data.set("TEGANGAN: " + str(processed_data[0]))
self.tegangan.pack()
self.arus_data.set(" ARUS : " + str(processed_data[1]))
self.arus.pack()
self.daya_data.set(" DAYA : " + str(processed_data[2]))
self.daya.pack()
self.torsi_data.set(" TORSI : " + str(processed_data[3]))
self.torsi.pack()
self.panas_data.set(" PANAS MESIN : " + str(processed_data[4]))
self.panas.pack()
self.jarak_data.set(" JARAK TEMPUH : " + str(processed_data[5]))
self.jarak.pack()
# Wait 1 second between each measurement
self.after(500,self.measure)
# Create display elements
def createWidgets(self):
self.tegangan = Label(self, textvariable=self.tegangan_data, font=('Verdana', 20, 'bold'))
self.tegangan_data.set("Tegangan")
self.tegangan.pack()
self.arus = Label(self, textvariable=self.arus_data, font=('Verdana', 20, 'bold'))
self.arus_data.set("Arus")
self.arus.pack()
self.daya = Label(self, textvariable=self.daya_data, font=('Verdana', 20, 'bold'))
self.daya_data.set("Daya")
self.daya.pack()
self.torsi = Label(self, textvariable=self.torsi_data, font=('Verdana', 20, 'bold'))
self.torsi_data.set("Torsi")
self.torsi.pack()
self.panas = Label(self, textvariable=self.panas_data, font=('Verdana', 20, 'bold'))
self.panas_data.set("Panas mesin")
self.panas.pack()
self.jarak = Label(self, textvariable=self.jarak_data, font=('Verdana', 20, 'bold'))
self.jarak_data.set("Daya")
self.jarak.pack()
def __init__(self, master=None):
Frame.__init__(self, master)
self.tegangan_data = StringVar()
self.arus_data = StringVar()
self.daya_data = StringVar()
self.torsi_data = StringVar()
self.panas_data = StringVar()
self.jarak_data = StringVar()
self.createWidgets()
self.pack()
self.measure()
root = Tk()
app = Application(master=root)
app.mainloop()
要使标签在窗口中左对齐,可以将“measure”方法中的代码更改为:
这将导致:
现在,如果你水平地展开窗口,你会看到即使标签保持左对齐,它们也不会停留在窗口的左侧,而是停留在中间。我不知道您是否想要这种行为,但是如果您想知道为什么会发生这种情况,请将初始化框架窗口的行更改为:
标签当前已打包到框架的左侧,但包含标签的框架未打包到窗口的左侧。框架可以像其他tkinterui小部件一样打包。由于继承了应用程序类中的Frame,因此可以在调用应用程序构造函数后使用它(如果希望框架和标签保持在窗口的左侧):
您还可以使用:
虽然他们的行为有差异,但我会让你去探索。你知道吗
最后,为了改善应用程序的外观,可以将框架配置为在它和窗口边缘之间总是有一些填充。试试这个:
有关使用pack()的良好信息来源: https://effbot.org/tkinterbook/pack.htm
如果您想在Tkinter中进行复杂的布局,那么应该检查grid(): https://effbot.org/tkinterbook/grid.htm
另外,最好查看您必须使用的小部件的文档,例如Frame http://effbot.org/tkinterbook/frame.htm
相关问题 更多 >
编程相关推荐