Python,从类外部访问小部件项

时间:2017-12-19 00:54:06

标签: python tkinter listbox

我有一个自动生成的代码,它生成一个包含各种小部件的GUI。其中一个小部件是ScrolledListBox。代码的一部分如下所示:

import com.typesafe.config.ConfigFactory
    object ReadProperty {
      def main(args : Array[String]): Unit = {
        val queryRead = ConfigFactory.load("testqueries.properties").getConfig("select").getStringList("caseInc").toArray()

        val localRead = ConfigFactory.load("testqueries.properties").getConfig("select").getStringList("caseLocal").toArray.toSet

        queryRead.foreach(println)
        localRead.foreach(println)
      }
    }

我想从此课程外部访问Scrolledlistbox4。因此,例如,我想编写一个函数,只要我调用它就会更新ScrolledListBox。我对python比较陌生,想知道如何实现这个目标。

1 个答案:

答案 0 :(得分:2)

您需要先创建一个Scrolledlistbox4对象作为属性:

self.scrolled_listbox = Scrolledlistbox4(...)

然后你可以在最外层范围内完成所有配置,如:

a = New_Toplevel_1()

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

在下面的示例"Outside Button"中,更改了班级的text选项'来自外面的按钮:

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()