天天看點

Python+tkinter添加滾動條

大家好,我是IKUN的真愛粉,有時候我們需要在tkinter上加滾動條,那麼怎麼制作呢,我們先看下面的視訊展示效果,是不是你想要的

展示

Python+tkinter添加滾動條

感覺制作的略微粗糙,各位可以後期自己慢慢調整

建立滾動條重要的步驟是:

1、建立畫布:

canvas = Canvas(tk) # 建立畫布

2、建立滾動條:

myscrollbar = Scrollbar(tk, orient="vertical", command=canvas.yview) # 建立滾動條

3、畫布上加上滾動條:

canvas.configure(yscrollcommand=myscrollbar.set)

我這個代碼是将一個非常長的清單内容,用Label控件顯示文本,然後加上滾動條,僅僅是作為一個參考!

我的實戰代碼,用在了這篇部落格:點我檢視(python+tkinter讀取excel選取自己需要的列并儲存)

奉上完整版代碼:

import tkinter
from tkinter import *

head = ["我是文本", "我是文本", "我是文本", "我是文本", "我是文本", "我是文本", "我是文本", "我是文本", "我是文本",
        "我是文本", "我是文本", "我是文本", "我是文本", "我是文本", "我是文本", "我是文本", "我是文本", "我是文本",
        "我是文本", "我是文本", "我是文本", "我是文本", "我是文本", "我是文本", "我是文本", "我是文本", "我是文本",
        "我是文本", "我是文本", "我是文本", "我是文本", "我是文本", "我是文本", "我是文本", "我是文本", "我是文本",
        ]
tk = tkinter.Tk()
tk.geometry("770x670")
canvas = Canvas(tk)  # 建立畫布
canvas.place(x=0, y=0, height=670, width=500)
myscrollbar = Scrollbar(tk, orient="vertical", command=canvas.yview)  # 建立滾動條
myscrollbar.place(x=500, y=0, height=670)
canvas.configure(yscrollcommand=myscrollbar.set)
rollFrame = Frame(canvas)  # 在畫布上建立frame
name_list = []
name_list2 = []
for n in range(len(head)):
    name_list.append("a" + str(n))
    name_list2.append("b" + str(n))

for i in range(len(head)):
    name_list2[i] = IntVar()
    name_list[i] = Label(rollFrame, text=head[i])
    name_list[i].pack()


def myfunction(event):
    canvas.configure(scrollregion=canvas.bbox("all"), width=100, height=670)


canvas.create_window((0, 0), window=rollFrame, anchor='nw')  # 要用create_window才能跟随畫布滾動
rollFrame.bind("<Configure>", myfunction)
tk.mainloop()

           

希望對大家有幫助,如有錯誤,歡迎指正

緻力于辦公自動化的小小程式員一枚

希望能得到大家的【一個免費關注】!感謝

此外我還提供了,辦公十大技巧:點我檢視

Python+tkinter添加滾動條