Abrindo uma janela dentro de uma janela já aberta (Rapidamente / Glade)

0

Eu tenho uma pergunta sobre a implementação de janelas e botões. Se eu tiver uma barra de ferramentas configurada e eu tiver um botão nela, é possível fazer com que ela abra uma janela dentro do programa? Quero dizer, como abrir uma seção diferente do programa como a função notepad1 faria? Ou posso imitá-lo para imitar o comportamento das configurações do sistema, onde ele abre uma janela completamente dentro da mesma janela? Se você puder ajudar, agradeço. Estou trabalhando com o arquivo glade padrão, se isso ajudar alguém.

    
por Compt 28.06.2012 / 14:25

1 resposta

1

Estou fazendo isso no meu aplicativo também. Eu consegui isso fazendo algo semelhante ao seguinte:

Na sua janela principal, faça uma referência ao widget que você deseja usar como seu pai. Deve ser um derivado de GtkContainer (como GtkBox ). No meu exemplo, fiz algo parecido com o seguinte no meu construtor de classe:

self.itemAsMyContainer = self.builder.get_object("name_of_object_id")

Em seguida, usei o glade para criar outro arquivo ui separado com um derivado GtkContainer como (no meu caso GtkBox ) como seu objeto de nível superior e, em seguida, modifiquei o nome da classe de maneira semelhante à rapidez com que ele . Em seguida, criei uma classe separada para ela de maneira semelhante a _lib/Window.py no modelo rápido. Uma vez feito isso, eu poderia simplesmente instanciar essa nova classe e anexá-la ao meu contêiner de referência com um pedaço de código como:

self.my_sub_ui = MySexyGtkContainerSubClass()
self.itemAsMyContainer.pack_start(self.my_sub_ui)

Eu acredito que essa mesma abordagem é possível com outra janela, mas você pode ter que desfazê-la. Veja esta pergunta para mais informações sobre aqui

    
por William Culver 28.06.2012 / 14:57