Python(Tkinter):有没有一种方法可以在不干扰其他小部件的情况下使用pady来降低小部件?

时间:2019-05-14 12:37:48

标签: python-3.x tkinter

我在第5列有一个按钮,在第1、2、3和4列有几个Label(每个都在第0行)。在第5列中将pady用作按钮时,其他标签也会下降,这就是为什么我无法设置布局的原因。

我唯一能思考和做的就是使用pady。

代码如下:

from tkinter import *
from tkinter import ttk

root = Tk()
root.geometry("1000x500")
root.title("Stock Manager")
root.resizable(False, False)


Label(root, text="Image", font=20).grid(column=0, row=0, pady=5, padx=50)

Label(root, text="Product No.", font=20).grid(column=1, row=0, pady=5, padx=40)
prodnumempty = Label(root, text="00547", font=16).grid(column=1, row=1)
Label(root, text="Description", font=20).grid(column=2, row=0, pady=5, padx=40)
Label(root, text="Quantity", font=20).grid(column=3, row=0, pady=5, padx=40)
Label(root, text="Price", font=20).grid(column=4, row=0, pady=5, padx=40)

historybtn = ttk.Button(root, text="See Product History").grid(column=5, row=0)

root.mainloop()

我希望See Product History按钮下降,而其他(标签)按钮应保持固定位置。

1 个答案:

答案 0 :(得分:1)

一种方法是将所有标签都放在一个框架中,并在左行中网格化,然后将按钮在右行中网格化。

类似这样的东西:

import tkinter as tk
from tkinter import ttk

root = tk.Tk()
root.geometry("1000x500")
root.title("Stock Manager")
root.resizable(False, False)

left_frame = tk.Frame(root, width=900, height=500)
tk.Label(left_frame, text="Image", font=20).grid(column=0, row=0, pady=5, padx=50)

tk.Label(left_frame, text="Product No.", font=20).grid(column=1, row=0, pady=5, padx=40)
prodnumempty = tk.Label(left_frame, text="00547", font=16).grid(column=1, row=1)
tk.Label(left_frame, text="Description", font=20).grid(column=2, row=0, pady=5, padx=40)
tk.Label(left_frame, text="Quantity", font=20).grid(column=3, row=0, pady=5, padx=40)
tk.Label(left_frame, text="Price", font=20).grid(column=4, row=0, pady=5, padx=40)

left_frame.grid(column=2, row=0)

historybtn = ttk.Button(root, text="See Product History").grid(column=5, row=1)

root.mainloop()