2017-12-19 5 views
0

Ich habe einen automatisch generierten Code, der eine GUI generiert, die verschiedene Widgets enthält. Eines der Widgets ist eine ScrollledListBox. Ein Teil des Codes ist unten dargestellt:Python, Zugriff auf Widget-Elemente von außerhalb einer Klasse

class New_Toplevel_1: 
    def __init__(self, top=None): 
     self.Scrolledlistbox4.configure(background="white") 
     self.Scrolledlistbox4.configure(font="TkFixedFont") 
     self.Scrolledlistbox4.configure(highlightcolor="#d9d9d9") 
     self.Scrolledlistbox4.configure(selectbackground="#c4c4c4") 
     self.Scrolledlistbox4.configure(width=10) 

ich die Scrolledlistbox4 von außerhalb dieser Klasse zugreifen möchten. Zum Beispiel möchte ich schreiben, um eine Funktion zu schreiben, die die ScrolledListBox aktualisiert, wenn ich sie anrufe. Ich bin relativ neu bei Python und würde gerne wissen, wie ich das erreichen kann.

Antwort

2

Sie müssen zuerst ein Scrolledlistbox4 Objekt als Attribut erstellen:

self.scrolled_listbox = Scrolledlistbox4(...) 

dann können Sie alle konfiguriert wie in äußersten Umfang tun:

a = New_Toplevel_1() 

a.scrolled_listbox.configure(background='white') 
... 

Im folgenden Beispiel "Outside Button" ändert sich die text Option einer Klasse 'Taste von außen:

import tkinter as tk 

class FrameWithButton(tk.Frame): 
    def __init__(self, master): 
     super().__init__(master) 

     self.btn = tk.Button(root, text="Button") 
     self.btn.pack() 

root = tk.Tk() 

an_instance = FrameWithButton(root) 
an_instance.pack() 

def update_button(): 
    global an_instance 
    an_instance.btn['text'] = "Button Text Updated!" 


tk.Button(root, text="Outside Button", command=update_button).pack() 

root.mainloop() 
Verwandte Themen