📜  tkinter gui 网格和框架 - Python (1)

📅  最后修改于: 2023-12-03 15:20:38.253000             🧑  作者: Mango

Tkinter GUI 网格和框架 - Python

简介

Tkinter 是 Python 的标准 GUI 库,非常适合构建 GUI 应用程序。在 Tkinter 中,网格布局和框架是常见的 GUI 元素。网格管理器允许我们把 GUI 元素组织成网格,框架则可以用来将 GUI 元素分组在一起。

本文将介绍如何使用 Tkinter 的网格管理器和框架来创建和组织 GUI 元素。

使用网格管理器布局

网格管理器(grid())是 Tkinter 中最常用的布局管理器之一,它允许我们以网格的形式组织 GUI 元素。使用网格管理器,我们可以将 GUI 元素放置在一个表格中的特定行和列上,这使得布局非常精确和可控制。

下面是一个使用网格管理器布局的例子,它展示了如何在一个窗口中放置两个按钮:

import tkinter as tk

root = tk.Tk()

btn1 = tk.Button(root, text="Button 1")
btn2 = tk.Button(root, text="Button 2")

btn1.grid(row=0, column=0)
btn2.grid(row=0, column=1)

root.mainloop()

Grid Layout Example

在这个例子中,我们创建了一个 Tk() 窗口,并在其中创建了两个按钮。使用 grid() 方法,我们可以将第一个按钮放置在第一行第一列,第二个按钮放置在第一行第二列。

网格管理器选项

当使用网格管理器时,每个 GUI 元素都有一些选项可以设置,包括:

  • row:元素所在的行号(从 0 开始)
  • column:元素所在的列号(从 0 开始)
  • rowspan:元素所占的行数(默认值为 1)
  • columnspan:元素所占的列数(默认值为 1)
  • sticky:元素在单元格内的对齐方式,默认为居中(值为 tk.N + tk.S + tk.E + tk.W 可以让元素填满单元格)

我们可以使用这些选项来控制 GUI 元素在网格布局中的位置和大小。

使用框架分组

框架(Frame)是 Tkinter 中的一个容器控件,它允许我们将 GUI 元素分组在一起。例如,我们可以将一组相关的按钮放置在一个框架中。

下面是一个使用框架分组的例子,它展示了如何在一个窗口中创建两个框架,并在每个框架中放置一个按钮:

import tkinter as tk

root = tk.Tk()

frame1 = tk.Frame(root, borderwidth=2, relief="groove")
frame2 = tk.Frame(root, borderwidth=2, relief="groove")

btn1 = tk.Button(frame1, text="Button 1")
btn2 = tk.Button(frame2, text="Button 2")

frame1.pack(side="left", padx=10, pady=(10, 0), fill="both")
frame2.pack(side="right", padx=10, pady=(10, 0), fill="both")

btn1.pack(side="top", padx=5, pady=5)
btn2.pack(side="top", padx=5, pady=5)

root.mainloop()

Frame Layout Example

在这个例子中,我们创建了一个 Tk() 窗口和两个框架。我们还创建了一个在第一个框架中的按钮,和一个在第二个框架中的按钮。

使用 pack() 方法,我们可以将框架放置在窗口中,并指定它们的位置和大小。使用 side 参数,我们可以指定框架应该放置在窗口的哪一侧。使用 padxpady 参数,我们可以指定框架和窗口之间的间隔大小,使用 fill 参数,我们可以指定当窗口大小发生变化时,框架应该如何扩展。

使用 pack() 方法,我们还可以将按钮放置在框架中,并指定它们的位置和大小。

结论

在本文中,我们介绍了如何使用 Tkinter 的网格管理器和框架来创建和组织 GUI 元素。使用网格管理器,我们可以将 GUI 元素以网格形式精确地放置在窗口中,而使用框架,则可以将 GUI 元素分组在一起。这两种布局管理器在 GUI 设计中非常有用,我们应该熟练掌握它们的用法。