Да, пробовал. Не выводит в форму, выводит в Shell IDLE. Или в консоль. dir (window) в данном варианте кода на конечный результат не влияет.
Вот код:
from gi.repository import Gtk
class Handler:
def on_window1_destroy(self, *args):
Gtk.main_quit (*args)
def on_button1_clicked (self, button):
print("Hello World!")
builder = Gtk.Builder()
builder.add_from_file("builder_example.glade")
builder.connect_signals(Handler())
box = builder.get_object("textview1")
box.text= "Все получится!"
window = builder . get_object ( "window1" )
dir(window)
window.show_all()
Gtk . main ()
и я всё-равно не представляю механизм согласования: должно же что-то указывать на конкретное место для вывода текста или изображения
Есть программа, но опять же на gtk без создания формы в Glade , которая при нажатии меняет имя кнопки.
Я попробовал такой вариант: В Glade создал окно, положил вертикальный бокс из 2-х секций, в верхнюю cекцию - кнопку, в нижнюю секцию - область событий eventbox и после label. Задал обработчики сигналов для button и eventbox. eventbox дал возможность использовать метку как кнопку. Самое интересное, что при задании функции def для label потребовало третий аргумент, хотя в аналогичной def для batton хватает и двух. Тут у меня появилась надежда. Задавал третьим аргументом и window, и box, и eventdox, и label, а оказалось ему(интерпретатору) тут нужно только количество и назови их хоть горшками. У меня в примере они такие : (всё, это, пустяки). Кириллицу, конечно, не берёт)))
1)Нажимаем кнопку 2) Нажимаем на метку 3) Получаем:
>>>
Hello World!
Сколько можно?
Далее я приведу код hml и код Python. Можно скопировать hml и сохранить его как builder_example.glade и,
запустив питона посмотреть как мелко я плаваю
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.18.3 -->
<interface>
<requires lib="gtk+" version="3.12"/>
<object class="GtkWindow" id="window1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="default_width">440</property>
<property name="default_height">250</property>
<signal name="destroy" handler="on_window1_destroy" swapped="no"/>
<child>
<object class="GtkBox" id="box1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkButton" id="button1">
<property name="label" translatable="yes">button</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<signal name="clicked" handler="on_button1_clicked" swapped="no"/>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkEventBox" id="eventbox1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<signal name="button-press-event" handler="on_eventbox1_button_press_event" swapped="no"/>
<child>
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">label</property>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
</interface>
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from gi.repository import Gtk
class Handler:
def on_window1_destroy(self, *args):
Gtk.main_quit (*args)
def on_button1_clicked (self, button):
print("Hello World!")
def on_eventbox1_button_press_event (vse,eto,pustyaki):
print("Сколько можно?")
builder = Gtk.Builder()
builder.add_from_file("builder_example.glade")
builder.connect_signals(Handler())
window = builder . get_object ( "window1" )
window.show_all()
Gtk . main ()