[英]Tkinter closing the gap between widgets
如果它看起来很乱,我很抱歉,但是我如何缩短入口小部件和名为“tag”的 label 小部件之间的差距这是它现在的样子:
我希望输入框和“等级”这个词粘在一起。我觉得网格之间有一个基本距离,所以我尝试了一些几何特征,但无法弄清楚
import tkinter as tk
from tkinter import ttk
from tkinter import *
win = tk.Tk()
win.geometry("300x250")
win.title("Gpa Calculator")
def gpa_calc():
pass
grade1 = tk.DoubleVar()
grade2 = tk.DoubleVar()
grade3 = tk.DoubleVar()
grade4 = tk.DoubleVar()
grade5 = tk.DoubleVar()
grade6 = tk.DoubleVar()
label1 = ttk.Label(win, text="Gpa Calculator",font = ("Times New Roman", 15)).grid(column=1,row=0,pady=0)
label1 = ttk.Label(win, text="Class 1").grid(column=0, row=1,)# Column ve row da degismesi gerekebilir
class1 = ttk.Entry(win, width=12, textvariable=grade1)
class1.grid(column=2, row=1,pady=5)
tag1 = ttk.Label(win, text="Gpa:").grid(column=1, row=1,)
label2 = ttk.Label(win, text="Class 2").grid(column=0, row=2,)
class2 = ttk.Entry(win, width=12, textvariable=grade2)
class2.grid(column=2, row=2,pady=5)
tag2 = ttk.Label(win, text="Gpa:").grid(column=1, row=2,)
label3 = ttk.Label(win, text="Class 3").grid(column=0, row=3,)
class3 = ttk.Entry(win, width=12, textvariable=grade3)
class3.grid(column=2, row=3,pady=5)
tag3 = ttk.Label(win, text="Gpa:").grid(column=1, row=3,)
label4 = ttk.Label(win, text="Class 4").grid(column=0, row=4,)
class4 = ttk.Entry(win, width=12, textvariable=grade4)
class4.grid(column=2, row=4,pady=5)
tag4 = ttk.Label(win, text="Gpa:").grid(column=1, row=4,)
label5 = ttk.Label(win, text="Class 5").grid(column=0, row=5,)
class5 = ttk.Entry(win, width=12, textvariable=grade5)
class5.grid(column=2, row=5,pady=5)
tag5 = ttk.Label(win, text="Gpa:").grid(column=1, row=5,)
label6 = ttk.Label(win, text="Class 6").grid(column=0, row=6,)
class6 = ttk.Entry(win, width=12, textvariable=grade6)
class6.grid(column=2, row=6,pady=5)
tag6 = ttk.Label(win, text="Gpa:").grid(column=1, row=6,)
顶部 label 定义了中心列的宽度。 解决此问题的一种方法是为顶部 label 提供所有 3 列:
label1 = ttk.Label(win, text="Gpa Calculator",font = ("Times New Roman", 15))
label1.grid(column=0,row=0,pady=0,columnspan=3)
解决这个问题的另一个好方法是为表格制作一个专用的框架,以便框架有自己的网格。 然后您可以将该框架作为单个 object 放在另一个网格中。
我不是专业人士,但您可以删除填充并使用 win.columnconfigure 和 win.rowconfigure 设置网格的逐个单元格(或单元格列表)设置,如下所示:
win.columnconfigure(col,weight=1)
: weight使列或行可拉伸。 (你也可以设置pad)
对不起我的英语,可悲的是我是法语
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.