Kha*_*eza 0 user-interface tkinter python-3.x
我一直在使用 python tkinter 制作一些 gui 应用程序。在 tkinter 中,pack 和 grid 不能一起使用。在编写代码时,我必须使用 pack,然后我需要使用 2 个名为“Cloumn”和“row”的网格功能,但是是不可能的。
from tkinter import *
root = Tk()
button = Button(root, text="Click Me")
button.pack(side="bottom") #But I want to put that button in row=3
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
我需要将该按钮放在第 3 行。但是我该怎么做呢?有什么办法可以做到吗?
为了在同一代码中使用 pack 和 grid,您需要确保在单独的容器上使用它们。每个容器(根窗口、顶层窗口、框架)只能有grid()或pack()。
例如,如果我需要在框架上使用包,然后在该框架内使用网格,那就可以了。但我不能在框架内使用包,也不能在框架内使用网格。
如果您展开由以下代码创建的窗口,您将看到如果使用得当,pack 和 grid 如何协同工作。
import tkinter as tk
root = tk.Tk()
top_frame = tk.Frame(root)
top_frame.pack(sid="top")
bot_frame = tk.Frame(root)
bot_frame.pack(sid="bottom")
tk.Label(top_frame, text="Row 0 of top_frame").grid(row=0, column=0)
tk.Label(bot_frame, text="Row 0 of bot_frame").grid(row=0, column=0)
tk.Label(bot_frame, text="Row 1 of bot_frame").grid(row=1, column=0)
tk.Label(bot_frame, text="Row 2 of bot_frame").grid(row=2, column=0)
tk.Button(bot_frame, text="Row 3 of bot_frame").grid(row=3, column=0)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)