-1

我是这个页面的新手,我喜欢答案很好,在用户的所有帮助下,我是 python 新手,想在条目或标签中打印 dir 并不重要,例如:

def directory(): os.listdir('/')
files=StringVar()
files.set(directory)
entry=Entry(root, textvariable=files).grid()

显然在 tkinter 中,最后一个代码“打印”了一个目录列表,但是让我用这个 ',' 水平列表,对于每个不同的文件夹,我希望它在这个“条目”或“标签”上垂直列表,假设稍后需要一个滚动条,但是,没有问题,并且使 Windows 上的临时文件夹看起来像这样......

def directory(): os.listdir('%temp%')
    files=StringVar()
    files.set(directory)
    entry=Entry(root, textvariable=files).grid()

但是这个 %temp% 不能直接在 python 上工作我如何制作文件夹的 listdir?

4

1 回答 1

2

由于显示目录的内容通常需要多行文本,其中每个项目对应一个,因此您必须使用 atk.Labeltk.Text小部件,因为 atk.Entry只能处理单行文本。

此外,您需要在设置其选项之前listos.listdir()返回的值转换为多行字符串。text无论如何,为了使用你的directory()函数需要返回一个有用的值。

下面的代码做了这些基本的事情,并展示了如何使用扩展%temp%环境变量的值os.path.expandvars()。或者,您可以使用tempfile.gettempdir()Sukrit 推荐的函数获得相同的值。

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()
于 2013-08-12T21:07:26.970 回答