2016-12-19 2 views
0

Я пытаюсь получить удобство с использованием пакета GUI Tkinter для python, и я хотел бы создать функцию gui, которая вернет все методы и атрибуты docstrings, используя listbox и командная кнопка называется info на одну унифицированную выделить ключевые слова, как показано ниже:Обращение с документацией по методу конструктора классов БЕЗ использования справки или .__ doc__

tkinter_method display

Я пытаюсь получить информацию по ключевому слову ListBox на консоли за клик по info с использованием запроса get метода при извлечении из curselection, но большинство из этих ключевых слов в поле являются строковыми объектами, поэтому я CANN OT ИСПОЛЬЗОВАТЬ метод .__doc__ для объекта экземпляра Tk(), как я могу получить docstring для каждого метода из списка каталогов экземпляра Tk()?

Оригинальный код:

from Tkinter import * 
import threading, sys 


def document(): 
    """ Define the function's purpose """ 
    cursor = listbox.curselection() 
    item = window_docs[int(cursor[0])] 
    print item 
    return 

win = Tk() 

Label(win, text="A list of the following packages from Tkinter:\n").pack(side="top") 

scrollbar = Scrollbar(win) 
types = len(dir(win)) #list of the different widgets accessible with Tkinter 

button = Button(win, text="quit?", command=win.quit) 

button.config(bg="#A57706", fg="#042029", relief="ridge", bd=3) 

button.pack(side="top") 

listbox = Listbox(win, yscrollcommand=scrollbar.set) 
listbox.config(height = "400", width="30") 

listbox.document = document #Bind the function to listbox constructor 

window_docs = {} 

for wid in range(0, types-1): 
     constructor = dir(win)[wid] #constructor method 
     listbox.insert(wid, constructor) 
     window_docs[wid] = constructor.__doc__ 

listbox.pack(side='top', fill="y") 

trigger = Button(win, text="info", command=lambda listbox=listbox: listbox.document()) 

trigger.place(x=20, y=30, width=30, height=15) 
scrollbar.config(command=listbox.yview) 
scrollbar.pack(side="right", fill="y") 

while True: 
     win.mainloop() 

Еще раз кнопка информации будет генерировать документацию по ключевому слову в пределах списка, но я не уверен, как получить ключевое слово в качестве объекта правильно ПОЛУЧАТ docstring, любая помощь оценивается

+0

Почему это помечено как C#? – stuartd

+0

Это было авторекомендовано мне ботом стека, поэтому я включил его – akiespenc

+0

^Я смущен вашим комментарием, что вы предлагаете? – akiespenc

ответ

0

getattr встроенная функция для возврата объекта к пустой переменной. Таким образом, когда определенная функция document для команды кнопки info, добавить больше логики:

def document(): 
     """ Define the function's purpose """ 
     root = Tk() 
     cursor = listbox.curselection() 
     item = getattr(root, cursor) 
     print item 
     root.destroy() 
     return #exit from function 

Это функция, которую я искал, так что я могу создать лучшее меню справки для Tkinter, экспортируя, что метод/атрибут в командной строке.

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

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