如何在 Tkinter 上显示垂直列表
How show vertical list on Tkinter
我从 tkinter 开始,我已经生成了一个列表,其中包含某个文件夹中的元素,我需要在界面中显示它们。
我把它放在一个标签中,但它水平显示了元素,我需要它在另一个下方显示,有没有办法做到这一点?
from tkinter import *
from os import listdir
raiz = Tk()
ruta = './imagenes'
fotos = Frame()
fotos.place(x=0,y=0)
fotos.config(bd=10,relief="groove",width="500", height="200")
fotografias = StringVar()
lblfotos = Entry(fotos, textvariable=fotografias)
lblfotos.config(width="75")
lblfotos.place(x=10,y=0)
fotografias.set(listdir(ruta))
raiz.mainloop()
https://i.stack.imgur.com/JaEek.png
[1]: P.S。最初的想法是文件夹中的文件显示在界面中,您可以与它们进行交互,例如打开或删除,但我没有找到如何,可以在tkinter中完成吗?或者也许在另一个图书馆?谢谢你的回答。
Entry
小部件只能容纳单行字符串。请改用 Listbox
小部件。还要避免使用通配符导入,在正常情况下最好使用 pack()
或 grid()
而不是 place()
。
以下是基于您的代码的示例:
import tkinter as tk
from os import listdir
raiz = tk.Tk()
ruta = './imagenes'
fotos = tk.Frame(raiz, bd=10, relief="groove")
fotos.pack(fill="both", expand=1)
lblfotos = tk.Listbox(fotos, width=30, height=20)
lblfotos.pack(fill="both", expand=1)
for imgfile in listdir(ruta):
lblfotos.insert("end", imgfile)
raiz.mainloop()
我从 tkinter 开始,我已经生成了一个列表,其中包含某个文件夹中的元素,我需要在界面中显示它们。 我把它放在一个标签中,但它水平显示了元素,我需要它在另一个下方显示,有没有办法做到这一点?
from tkinter import *
from os import listdir
raiz = Tk()
ruta = './imagenes'
fotos = Frame()
fotos.place(x=0,y=0)
fotos.config(bd=10,relief="groove",width="500", height="200")
fotografias = StringVar()
lblfotos = Entry(fotos, textvariable=fotografias)
lblfotos.config(width="75")
lblfotos.place(x=10,y=0)
fotografias.set(listdir(ruta))
raiz.mainloop()
https://i.stack.imgur.com/JaEek.png
[1]: P.S。最初的想法是文件夹中的文件显示在界面中,您可以与它们进行交互,例如打开或删除,但我没有找到如何,可以在tkinter中完成吗?或者也许在另一个图书馆?谢谢你的回答。
Entry
小部件只能容纳单行字符串。请改用 Listbox
小部件。还要避免使用通配符导入,在正常情况下最好使用 pack()
或 grid()
而不是 place()
。
以下是基于您的代码的示例:
import tkinter as tk
from os import listdir
raiz = tk.Tk()
ruta = './imagenes'
fotos = tk.Frame(raiz, bd=10, relief="groove")
fotos.pack(fill="both", expand=1)
lblfotos = tk.Listbox(fotos, width=30, height=20)
lblfotos.pack(fill="both", expand=1)
for imgfile in listdir(ruta):
lblfotos.insert("end", imgfile)
raiz.mainloop()