0

我有处理我的 glade 文件并对其进行初始化的类,其他方法与用户交互。

我想要的是编写另一个类来控制已经初始化的林间空地文件的查看选项(如定位主题、定位图标)。

我使用了我知道的所有类型的构建(包括继承),但是我遇到了多个错误(比如未定义变量 x)。在最好的情况下我得到了这个错误:当二等人行动时;它从一开始就初始化 glade 文件,导致另一个窗口出现,设置第二个窗口的选项,保持原始窗口不变。

这是导致此错误的一段代码:

头等舱:

def __init__(self):
    self.builder = gtk.Builder()

    self.glade_file = os.path.dirname(os.getcwd()) + '/glade_files/mainwin.glade'
    self.builder.add_from_file(self.glade_file)

    self.win=self.builder.get_object('window1')
    options()
    self.win.show()
    ................ and so on .

二等:

class options():
    .... some methods then 
    def icon_options():
        builder=gtk.Builder()
        a=os.path.dirname(os.getcwd()) + '/glade_files/mainwin.glade'
        builder.add_from_file(a)
        image=builder.get_object('image5')
        print image
        image.set_from_file('apple.png')

有没有办法让第二类控制由第一类初始化的窗口?

4

1 回答 1

0

一个可行的解决方案是在第二个类中添加“选项”,这是对在第一类中创建的窗口的引用。这样你就可以访问窗口的成员了。您可以在第二个类的构造函数中传递此对象,例如:

在第一堂课中:

def __init__(self):
    self.builder = gtk.Builder()

    # some code here ...

    self.win = self.builder.get_object('window1')
    options(self.win)
    self.win.show()

二等:

class options():
    def __init__(self, window):
        self._window = window

    # do whatever you want with the window ...
于 2013-08-30T05:25:45.507 回答