我在这个页面中的新内容,我喜欢这个答案很好的工作,在用户的帮助下,我在python上的新功能,并想在条目或标签中打印dir无关紧要,例如:
def directory(): os.listdir('/')
files=StringVar()
files.set(directory)
entry=Entry(root, textvariable=files).grid()
显然在tkinter中,最后一个代码会打印一个“打印”目录列表,但是对于每个文件夹不同,使我成为一个水平列表,这个','我希望它在这个“条目”或“标签”上的垂直列表,假设后来需要一个滚动条但是,没有问题,并且对于窗口上的临时文件夹也是如此...
def directory(): os.listdir('%temp%')
files=StringVar()
files.set(directory)
entry=Entry(root, textvariable=files).grid()
但是这个%temp%不能直接在python上工作,我怎样才能创建一个listdir的文件夹?
答案 0 :(得分:2)
由于显示目录的内容通常需要多行文本,其中每个项目对应一个,因此tk.Label
需要使用tk.Text
或tk.Entry
小部件}只能处理单个文本行。
此外,在设置list
选项之前,您需要将os.listdir()
返回的text
转换为多行字符串。无论如何,为了使用你的directory()
函数需要返回一个有用的值。
以下代码执行这些基本操作,并演示如何使用%temp%
扩展os.path.expandvars()
环境变量的值。或者,您可以使用Sukrit推荐的tempfile.gettempdir()
函数获得相同的值。
import os
from Tkinter import *
def directory(folder):
return '\n'.join(os.listdir(folder)) # turn list into multiline string
class App:
def __init__(self, master):
frame = Frame(master)
frame.pack()
files = directory(os.path.expandvars('%temp%'))
self.label = Label(root, text=files)
self.label.pack(side=LEFT)
root = Tk()
app = App(root)
root.mainloop()