Criando widgets usando o GtkBuilder

4

Estou usando o Glade para criar um Box com widgets e, em seguida, carregar esses widgets na interface do usuário em tempo de execução. Para criar cada Box com widgets em tempo de execução, criei um novo GtkBuilder, chame add_from_string passando o texto do arquivo .ui criado por Glade e, em seguida, use o objeto retornado de get_object ("box1") na interface do usuário. Eu sei que eu poderia criar os widgets com código, mas por enquanto, eu gostaria de usar os arquivos .ui que o Glade cria. Parece ineficiente para instanciar um novo objeto GtkBuilder e o objeto Window desperdiçado para cada Box que eu quero criar. Existe um método mais eficiente para carregar arquivos .ui sem criar um novo objeto GtkWidget e um objeto Window desperdiçado?

Obrigado Vance

    
por user72943 02.07.2012 / 00:17

2 respostas

2

Se você quiser preencher sua GUI com novos widgets enquanto seu aplicativo estiver em execução, é completamente errado criar um monte de arquivos .ui separados e GtkBuilders para eles. É muito fácil criar um único widget a partir do código.

Suponho que você use o Python, já que você marcou sua pergunta como pygtk .

Veja um exemplo simples:

from gi.repository import Gtk

e:

my_window = Gtk.Window()
my_button = Gtk.Button()
my_window.add(my_button)
my_window.show_all()

Bem, isso não funcionará sozinho, mas é assim que você pode criar novos widgets. Para detalhes sobre widgets específicos, acesse este elegante tutorial / docs: link

    
por Rafał Cieślak 02.07.2012 / 00:27
2

Se você quiser diferentes partes empurradas em diferentes áreas em tempo de execução, você pode construir um arquivo glade com cargas de janelas e re-parent-los. Para um exemplo, verifique o que eu fiz para esta outra questão .

    
por RobotHumans 02.07.2012 / 17:20