簡體   English   中英

Tkinter 縮小小部件之間的差距

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM