如何让滚动条看起来更好

How to make scrollbar look better

我正在为我的商店编码,但看起来我无法制作一个好的滚动条。有谁能帮助我吗,我已经搜索了 make scrollbar,但他们只使用 .pack()。所以看起来我需要制作另一个框架,但我不想使用它。这是我的代码。

from tkinter import *
import tkinter as tk
wd=tk.Tk()
wd.title("Sale manager")
#------------Frame-------------
#f1=Frame(wd)
#f1.pack()
#------------Label--------------
lb0 = Label(wd, text ="The FOAK Store", bg = "red", fg ="Black")
lb0.grid(row =0, column =0)
lb1 = Label(wd, text ="Chon loai giay:")
lb1.grid(row =1, column =0)
lb2 = Label(wd, text ="Ngay:")
lb2.grid(row =2, column =0)
lb3 = Label(wd, text ="Gia ban:")
lb3.grid(row =3, column =0)
lb4 = Label(wd, text ="Gia goc:")
lb4.grid(row =4, column =0)

#------------Entry-----------------
scrollbar = Scrollbar(wd)
scrollbar.grid(row=1, column=2)

listbox = Listbox(wd, height=5, width=30, yscrollcommand=scrollbar)
listbox.grid(row=1, column=1)
#------------Data giày-------------
Giay = [
"Nike Air Max Offwhite",
"Nike Vapor Max Offwhite",
"Nike Jordan 1 Offwhite",
"Yeezy 350 Sesame"
]
#-------------Import list box---------
for i in Giay:
   listbox.insert(END, i)

wd.mainloop()

欢迎使用 Whosebug。

正如评论所说

  • a) 使用 sticky 拉伸滚动条以填充行。
  • b) Link 列表框的 yscroll 命令到 scrollbar.set
  • c) Link滚动条命令到listbox.yview

您对代码所做的更改如下所示。它们介于 # -- Entry -- 和 # -- Data giày --.

列表中必须有更多项目才能使其足够长以进行滚动。

   #------------Entry-----------------
   scrollbar = Scrollbar(wd)
   scrollbar.grid(row=1, column=2, sticky=tk.N+tk.S) # Scrollbar fills the height of row 1

   listbox = Listbox(wd, height=5, width=30, yscrollcommand=scrollbar.set)
   # yscrollcommand linked to scrollbar.set method, not scrollbar 
   listbox.grid(row=1, column=1)
   scrollbar['command']=listbox.yview # Bind scrollbar command to listbox.yview

   #------------Data giày-------------

在我的 windows 机器上,tk 和 ttk 滚动条看起来一样。您可能想探索使用 ttk 滚动条,它可能会改善外观。