2016-06-01 2 views
-1

ниже - мой код для создания инструмента, который принимает путь к файлу, сохраняет значение и затем открывает путь к определенному файлу, выбранный пользователем.Python: Каков синтаксис добавления команды в элемент списка tkinter Listbox?

В настоящее время я ищу запись пользователя mypathEntry, которая хранится в списке mypathList после нажатия кнопки Save и добавления к ней команды. Команда откроет выбранный путь к файлу. Мой текущий код возвращает сообщение об ошибке mypathList.add_command(command=Open), в котором указано, что экземпляр Listbox не имеет атрибута 'add_command'.

Каков синтаксис добавления команды в элемент списка?

from Tkinter import * 
import os 

root = Tk() 

def Save(): 
    fp = mypathEntry.get() 
    scribe = open('filepath.txt', 'w') 
    scribe.write(fp) 
    mypathEntry.delete(0, 'end') 
    mypathList.insert(1, fp) 

def Open(): 
    path = fp 

menu = Menu(root) 
##root.config(menu=menu) 

##subMenu = Menu(menu) 
##menu.add_cascade(label="Filepaths", menu=subMenu) 
##subMenu.add_command(command=Save) 

mypathLabel = Label(root, text="Copy and Paste your filepath here:") 
mypathEntry = Entry(root, bg="black", fg="white", relief=SUNKEN) 
mypathSaveButton = Button(root, text="Save Path", bg="black", fg="white", command=Save) 

mypathList = Listbox(root, bg="black", fg="white") 
mypathList.add_command(command=Open) 


mypathLabel.pack() 
mypathEntry.pack() 
mypathSaveButton.pack() 
mypathList.pack() 



root.mainloop() 
+0

[Tkinter Listbox Widget] (http://effbot.org/tkinterbook/listbox.htm) – wwii

+0

Возможный дубликат [Tkinter Listbox] (http://stackoverflow.com/questions/8647735/tkinter- listbox) –

ответ

2

В соответствии с этим, http://effbot.org/tkinterbook/listbox.htm Элемент ListBox не имеет опцию командной строки. Так что вам нужно сделать, это связать событие с ним. Вот полный рабочий пример.

from tkinter import * 
import os 

root = Tk() 
class MainGui: 
    def __init__(self, master): 
     self.mypathLabel = Label(master, text="Copy and Paste your filepath here:") 
     self.mypathEntry = Entry(master, bg="black", fg="white", relief=SUNKEN) 
     self.mypathSaveButton = Button(master, text="Save Path", bg="black", fg="white", command=self.save_path) 
     self.mypathList = Listbox(master, bg="black", fg="white") 

     self.mypathLabel.pack() 
     self.mypathEntry.pack() 
     self.mypathSaveButton.pack() 
     self.mypathList.pack() 
     self.mypathList.bind("<Double-Button-1>", self.open_path) 

    def save_path(self): 
     fp = self.mypathEntry.get() 
     self.mypathEntry.delete(0, 'end') 
     self.mypathList.insert(1, fp) 

    def open_path(self, event): 
     list_item = self.mypathList.curselection() 
     fp = self.mypathList.get(list_item[0]) 
     print(fp) 
     try: 
      with open(fp, 'r') as result: 
       print(result.read()) 
     except Exception as e: 
      print(e)  

MainGui(root) 
root.mainloop() 
+0

Awesome terratunaz! Он отлично поработал! – mattyb

 Смежные вопросы

  • Нет связанных вопросов^_^