如何为标签列表制作“滚动条”? python tkinter [复制]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何为标签列表制作“滚动条”? python tkinter [复制]相关的知识,希望对你有一定的参考价值。
这个问题在这里已有答案:
这是我的代码:
from tkinter import *
from PIL import Image, ImageTk
im = Image.open(r"1asd.jpg")
root = Tk()
tkimage = ImageTk.PhotoImage(im)
lst = []
for i in range(1, 100):
A = Label(root, image=tkimage, text="File number "+str(i), compound=RIGHT)
A.config(font=("Courier", 44))
lst.append(A)
for i in lst:
i.pack()
root.mainloop()
问题是,我看不到所有的图像,因为它们太多了。如何制作滚动条?我试图使用“Listbox”对象,但它不允许我在文本旁边放置图像。
答案
尝试做这样的事情
from tkinter import *
from PIL import Image, ImageTk
root = Tk()
ws = root.winfo_screenwidth()
hs = root.winfo_screenheight()
w = 1000
h = 1000
x = (ws / 2) - (w / 2)
y = (hs / 2) - (h / 2)
root.geometry('%dx%d+%d+%d' % (w, h, x, y))
root.update()
canvas = Canvas(root, bg="Black", width=root.winfo_width(), height=root.winfo_height())
canvas.pack()
im = Image.open("home.png")
tkimage = ImageTk.PhotoImage(im)
lst = []
y = 0
for i in range(1, 100):
label = Label(canvas,image=tkimage, text="File number " + str(i), font=("Courier", 44), compound=RIGHT)
canvas.create_window(0, y, window=label, anchor=NW)
y += 60
scrollbar = Scrollbar(canvas, orient=VERTICAL, command=canvas.yview)
scrollbar.place(relx=1, rely=0, relheight=1, anchor=NE)
canvas.config(yscrollcommand=scrollbar.set, scrollregion=(0, 0, 0, y))
root.mainloop()
我使用Canvas
放置所有标签并滚动它们
以上是关于如何为标签列表制作“滚动条”? python tkinter [复制]的主要内容,如果未能解决你的问题,请参考以下文章
Python中tkinter中控件的使用(6.Listbox列表框(添加滚动条))