gpt4 book ai didi

python - 使用 Tkinter 在 python 中访问所选目录的名称

转载 作者:行者123 更新时间:2023-11-28 22:42:59 31 4
gpt4 key购买 nike

我正在尝试使用带有 Tkinter 网格的最小 GUI 使我的 python 程序更易于访问。

我创建了一个类,它创建了一个按钮,要求选择一个目录。这可以正常工作。但是,我希望在按钮下方的一行中镜像目录的路径。

class dir_choice:
def __init__(self, master, text, prow, pcol):
self.dir_button = Button(master, text = text, command = self.askdir)
self.dir_button.grid(row = prow, column = pcol)

self.feedb = Label(master, text = "text")
self.feedb.grid(row = prow+1, column = pcol)

def askdir(self):
name = askdirectory() #from tkFileDialog
return name

正在使用中:

dir1 = dir_choice(root, "FOLDER 1", 3, 2)

而不是 text = "text" 我想在按钮下方显示类似 "C:/user/A/B/C" 的东西选择目录。

我认为我假设这是在 name 变量中是不正确的,或者如果它是,我需要以不同的方式定义它。所以我的问题是如何访问 askdirectory() 函数的值以及如何将该值推送到 feedb 标签。

最佳答案

这可能只是一个复制粘贴错误,但缩进不正确。

PEP-8 style 要求类以 CamelCase 命名。它不会使您的代码运行得更快,但可读性很重要。

避免链接几何管理方法。如果您将几何方法(例如 grid())链接到小部件创建上,您最终会保存这些方法的返回值,该值始终为 None,因此 self.dir_buttonself.feedb 都是 None。相反,将几何管理方法放在单独的行上。

要更改小部件的属性,只需简单地对其进行configure()(或简称为config())。 askdirectory() 返回一个字符串,因此您可以直接使用它或将其保存到类似self.directory_name 的地方。在任何地方 return 它都没有用,因为该函数是由 Button 调用的,而 Button 不能对返回值做任何事情。

class DirChoice:
def __init__(self, master, text, prow, pcol):
self.dir_button = Button(master, text = text, command = self.askdir)
self.dir_button.grid(row = prow, column = pcol)
self.feedb = Label(master, text = "text")
self.feedb.grid(row = prow+1, column = pcol)
def askdir(self):
self.feedb.config(text= askdirectory()) #from tkFileDialog

关于python - 使用 Tkinter 在 python 中访问所选目录的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31306373/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com