📜  如何在 Tkinter 中制作正确的双滚动条框架

📅  最后修改于: 2022-05-13 01:54:18.873000             🧑  作者: Mango

如何在 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 轴上并且能够函数。

现在,插入一些要显示的文本:

要在窗口中插入文本以进行显示,请执行以下代码:

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()

输出: