Я пытаюсь создать виджеты с циклом. Это то, что я пробовал:Не удается подключить виджет к моей сетке
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
не пуст.
Благодарим за помощь.
EDIT:
Хорошо, я попробовал эту простую вещь:
self.runways_layout = builder.get_object('runwaysGrid')
label = Gtk.Label('Coucou')
self.runways_layout.attach(label, 0, 0, 1, 1)
И это не работает слишком ... O_o
Что значит «почему»? прочитайте методы show (9 и show_all() из ссылки, и вы узнаете об этом. – gianmt
В моем другом окне мне не нужно писать 'label.show()'. Я не понимаю, почему. – Wizix
show_all () вызывает show() рекурсивно для всех дочерних элементов, если это контейнер, поэтому достаточно вызвать его один раз в главном контейнере (обычно в главном окне), чтобы показать все виджеты. – gianmt