无法将小部件附加到我的网格

时间:2015-09-26 21:20:06

标签: python python-3.x pygobject

我正在尝试使用循环创建小部件。这就是我试过的:

def set_runways(self, airfield):
        i = 0
        for rwy in airfield['Runways']:
            frame = Gtk.Frame()
            frame.set_label('-'.join([rwy['Runway_1'], rwy['Runway_2']]))
            frame.set_shadow_type(1)

            self.runways_layout.attach(frame, (i / 2), (i % 2), 1, 1)

            rwy_layout = Gtk.Grid()
            frame.add(rwy_layout)

            # Just for testing :
            label = Gtk.Label('Hello, World')
            rwy_layout.attach(label, 0, 0, 1, 1)

我使用runways_layout __init__导入self.runways_layout = builder.get_object('runwaysGrid') Gtk.Grid self.set_runways(airfield),然后使用Hello World调用我的函数。但即使这样,我的窗口也没有显示rwy,我有一个空白窗口......为什么?

我指定我的self.runways_layout = builder.get_object('runwaysGrid') label = Gtk.Label('Coucou') self.runways_layout.attach(label, 0, 0, 1, 1) 不为空。

感谢您的帮助。

编辑:
好的,我尝试过这个简单的事情:

{{1}}

它也不起作用...... O_o

1 个答案:

答案 0 :(得分:-1)

好的,我找到了一个解决方案,我必须这样做:

self.runways_layout = builder.get_object('runwaysGrid')

label = Gtk.Label('Coucou')
self.runways_layout.attach(label, 0, 0, 1, 1)

label.show()  # Add this and it works...

但为什么?