如何在仍访问完整目录的同时返回目录的最后一部分? Tkinter

时间:2019-10-08 14:48:49

标签: python tkinter

我目前的目标是在下拉菜单中以文本形式显示目录的最后一部分,并仍然通过整个目录打开图像。

我当前的下拉菜单仅显示目录的完整长度,并且工作正常。但是我确实知道如何使用os.path.basename显示目录的最后一部分。不幸的是,它仅显示目录的最后一个字符串,但是当我单击“打开”时,它将尝试打开目录的最后一部分而不是整个目录。

以下是代码:

self.tkvar = StringVar()

# Directory
self.directory = "C:/Users/Eduards/Pictures"
self.choices = glob.glob(os.path.join(self.directory, "*.jpg"))

# Images
def change_dropdown():
    imgpath = self.tkvar.get()
    img = Image.open(imgpath)
    img = img.resize((529,361))
    photo = ImageTk.PhotoImage(img)
    label2.image = photo
    label2.configure(image=photo)
    self.CaptureScreen['state'] = 'normal'



#widgets
self.msg1 = Label(main, text = "Choose here")
self.msg1.grid(column = 0, row = 0)
self.popupMenu = OptionMenu(main, self.tkvar, *self.choices)
self.popupMenu.grid(row=1, column=0)
self.display_label = label2 = Label(main, image=None)
self.display_label.grid(row=2, column=0, rowspan = 500)
self.open_button = Button(main, text="Open", command=change_dropdown)
self.open_button.grid(row=502, column=0)

以下是输出:

enter image description here

如何获取目录仅显示目录的最后一部分。例如,从上图中以蓝色突出显示的图像仅显示Minions.jpg或仅显示Minions。但实际上,它在后台打开了C:/Users/Eduards/Pictures\Minions.jpg

1 个答案:

答案 0 :(得分:1)

非常简单,您必须更改打开代码。当前代码仅get设置用户单击的标签并打开该字符串(文件名)。您需要更改代码,以使显示的标签随心所欲,但是代码的open部分在文件名前加上self.directory

您已经省略了很多支持代码,但我认为您需要的是

img = Image.open('\\'.join(self.directory, imgpath))