Как вернуть последнюю часть каталога, при этом обращаясь к полному каталогу? Tkinter - PullRequest
1 голос
/ 08 октября 2019

Моя текущая цель - отобразить последнюю часть каталога в раскрывающемся меню в виде текста и по-прежнему открывать изображение через полный каталог.

В моем текущем раскрывающемся меню отображается только полная длина каталога иотлично работаетНо я знаю, как показать последнюю часть каталога, используя 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 Ответ

1 голос
/ 08 октября 2019

Очень просто, вы должны изменить код, который выполняет открытие. Текущий код просто get обозначает метку, по которой пользователь щелкнул, и открывает эту строку (имя файла). Вам нужно изменить свой код так, чтобы отображаемая метка была такой, как вы хотите, но часть кода open предшествует self.directory этому имени файла.

Вы опустили большую частьподдерживающий код, но я думаю что вам нужно

img = Image.open('\\'.join(self.directory, imgpath))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...