如何在 Tkinter 中制作正确的双滚动条框架
Tkinter是一个Python绑定到 Tk GUI(图形用户界面)工具包。它是 Tcl/Tk 之上的一个面向对象的薄层。与Python结合使用时,它有助于创建快速高效的 GUI 应用程序。
注意:有关更多信息,请参阅Python GUI-tkinter
在 Tkinter 中创建双滚动条框架的步骤
1)首先,模块 Tkinter 将被导入为:
import tkinter as tk
因此, tkinter在这里被缩写为tk ,以使代码看起来更简洁高效。
现在,将创建一个窗口来显示:
import tkinter as tk
window = tk.Tk()
window.geometry("250x200")
输出:
要理解的功能:
- geometry():该方法用于设置 Tkinter 窗口的尺寸以及用于设置主窗口在用户桌面上的位置。
2)下一个代码是分配给水平和垂直的滚动条。
SVBar = tk.Scrollbar(window)
SVBar.pack (side = tk.RIGHT,
fill = "y")
SHBar = tk.Scrollbar(window,
orient = tk.HORIZONTAL)
SHBar.pack (side = tk.BOTTOM,
fill = "x")
输出:
要理解的功能:
- Scrollbar() = 分配给窗口两侧的滚动条。
- pack()方法:它将小部件组织成块,然后放入父小部件中。
3)现在,为窗口制作一个文本框:
TBox = tk.Text(window,
height = 500,
width = 500,
yscrollcommand = SVBar.set,
xscrollcommand = SHBar.set,
wrap = "none")
TBox = tk.Text(window,
height = 500,
width = 500,
yscrollcommand = SVBar.set,
xscrollcommand = SHBar.set,
wrap = "none")
TBox.pack(expand = 0, fill = tk.BOTH)
要理解的功能:
- Text() = 它是标准 Tkinter 小部件的文本框小部件,用于显示文本。
- pack() = 它是一个几何管理器,用于在将小部件放入父小部件之前将它们组织成块。函数中使用了诸如填充、扩展和侧边之类的选项。
SHBar.config(command = TBox.xview)
SVBar.config(command = TBox.yview)
在这里,在函数config()
的参数中,滚动条被分配在它们特定的 x 轴和 y 轴上并且能够函数。
现在,插入一些要显示的文本:
Num_Vertical = (“\nA\nB\nC\nD\nE\nF\nG\nH\nI\nJ\nK\nL\nM\nN\nO\nP\nQ\nR\nS\nT\nU\nV\nW\nX\nY\nZ”)
Num_Horizontal = (“A B C D E F G H I J K L M N O P Q R S T U V W X Y Z”)
要在窗口中插入文本以进行显示,请执行以下代码:
TBox.insert(tk.END, Num_Horizontal)
TBox.insert(tk.END, Num_Vertical)
完整代码:
import tkinter as tk
Num_Vertical = ("\nA\nB\nC\nD\nE\nF\nG\n\
H\nI\nJ\nK\nL\nM\nN\nO\nP\nQ\nR\nS\nT\n\
U\nV\nW\nX\nY\nZ")
Num_Horizontal = ("A B C D E F G H \
I J K L M N O P Q R S T U V \
W X Y Z")
window = tk.Tk()
window.geometry("250x200")
SVBar = tk.Scrollbar(window)
SVBar.pack (side = tk.RIGHT,
fill = "y")
SHBar = tk.Scrollbar(window,
orient = tk.HORIZONTAL)
SHBar.pack (side = tk.BOTTOM,
fill = "x")
TBox = tk.Text(window,
height = 500,
width = 500,
yscrollcommand = SVBar.set,
xscrollcommand = SHBar.set,
wrap = "none")
TBox = tk.Text(window,
height = 500,
width = 500,
yscrollcommand = SVBar.set,
xscrollcommand = SHBar.set,
wrap = "none")
TBox.pack(expand = 0, fill = tk.BOTH)
TBox.insert(tk.END, Num_Horizontal)
TBox.insert(tk.END, Num_Vertical)
SHBar.config(command = TBox.xview)
SVBar.config(command = TBox.yview)
window.mainloop()
输出: