各位大大
小弟我在使用Tkinter 元件Scrollbar的時候遇到無法向下垂直填滿的問題想請教到底是哪裡出了問題
我的部分程式碼
##建立Tkinter視窗
window = tk1.Tk()
window.title('資料庫寫入程式')
window.configure(bg="#7AFEC6")
window.geometry("350x150+300+200")
scrollbar = tk1.Scrollbar(window) # 建立滾動條
scrollbar.grid(row=0, column=4, sticky=tk1.NS) # 將滾動條加在右側,垂直填滿
執行結果如下
試試看改用pack()方法加入滾動條。
import tkinter as tk
window = tk.Tk()
window.title('資料庫寫入程式')
window.configure(bg="#7AFEC6")
window.geometry("350x150+300+200")
##建立滾動條
scrollbar = tk.Scrollbar(window)
##建立文字方塊
text = tk.Text(window, height=6, width=40, yscrollcommand=scrollbar.set)
text.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
##加入滾動條
scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
scrollbar.config(command=text.yview)
window.mainloop()
如果我是要給整個"windows"小視窗使用的又該如何去寫呢?
好像沒辦法這麼做,但是可以調整到比較接近
import tkinter as tk
def update(event):
canvas.configure(scrollregion=canvas.bbox("all"))
window = tk.Tk()
window.title('資料庫寫入程式')
window.configure(bg="#7AFEC6")
window.geometry("350x150+300+200")
text = []
## 調整canvas畫布的大小與視窗對齊
canvas = tk.Canvas(window, width=330,height=150, bg="#FFFFFF")
canvas.grid(column=0, row=0)
scrollbar = tk.Scrollbar(window, orient='vertical',command=canvas.yview)
scrollbar.grid(column=1, row=0,sticky = 'ns')
frame = tk.Frame(canvas) # 建立 Frame
canvas.create_window((0,0),window=frame,anchor='nw')
frame.bind("<Configure>", update)
canvas.config(yscrollcommand=scrollbar.set)
## 測試效果,可放你想放的元件內容
for i in range(100):
tmp_text = tk.Label(frame, text = 'Hello world '+ str(i))
tmp_text.grid(column=0, row=i)
text.append(tmp_text)
window.mainloop()
不知道有沒有接近你要的效果
參考:
https://stackoverflow.com/questions/3085696/adding-a-scrollbar-to-a-group-of-widgets-in-tkinter
https://blog.csdn.net/bigcarp/article/details/123846887