Открытие окна в уже открытом окне (Quickly / Glade)

У меня есть вопрос относительно реализации окна и кнопки. Если у меня настроена панель инструментов и на ней есть кнопка, можно ли заставить ее открыть окно прямо в программе? Я имею в виду, как открыть другой раздел программы так же, как функция notepad1? Или я могу заставить его имитировать поведение системных настроек, когда он полностью открывает окно в том же окне? Если вы можете помочь, я ценю это. Я работаю с файлом по умолчанию, если это кому-нибудь поможет.

0
задан 28 June 2012 в 17:25

6 ответов

Я делаю это и в своем приложении. Я достиг этого, сделав что-то похожее на следующее:

В вашем главном окне получите ссылку на виджет, который вы хотите использовать в качестве родителя. Он должен быть производным от GtkContainer (например, GtkBox). В моем случае я сделал что-то вроде следующего в конструкторе классов:

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

Затем я использовал glade для создания другого отдельного файла пользовательского интерфейса с производной GtkContainer, такой (в моем случае GtkBox) в качестве объекта верхнего уровня, а затем изменил имя класса таким же образом, как быстро это делает. Затем я создал отдельный класс для него аналогично _lib/Window.py в быстром шаблоне. Как только это будет сделано, я могу просто создать экземпляр этого нового класса и прикрепить его к указанному контейнеру с помощью такого кода:

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

Я считаю, что такой же подход возможен в другом окне, но вам, возможно, придется не родитель этого Смотрите этот вопрос для получения дополнительной информации об этом здесь

1
ответ дан 25 July 2018 в 18:16

Я делаю это и в своем приложении. Я достиг этого, сделав что-то похожее на следующее:

В вашем главном окне получите ссылку на виджет, который вы хотите использовать в качестве родителя. Он должен быть производным от GtkContainer (например, GtkBox). В моем случае я сделал что-то вроде следующего в конструкторе классов:

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

Затем я использовал glade для создания другого отдельного файла пользовательского интерфейса с производной GtkContainer, такой (в моем случае GtkBox) в качестве объекта верхнего уровня, а затем изменил имя класса таким же образом, как быстро это делает. Затем я создал отдельный класс для него аналогично _lib/Window.py в быстром шаблоне. Как только это будет сделано, я могу просто создать экземпляр этого нового класса и прикрепить его к указанному контейнеру с помощью такого кода:

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

Я считаю, что такой же подход возможен в другом окне, но вам, возможно, придется не родитель этого Смотрите этот вопрос для получения дополнительной информации об этом здесь

1
ответ дан 2 August 2018 в 00:30

Я делаю это и в своем приложении. Я достиг этого, сделав что-то похожее на следующее:

В вашем главном окне получите ссылку на виджет, который вы хотите использовать в качестве родителя. Он должен быть производным от GtkContainer (например, GtkBox). В моем случае я сделал что-то вроде следующего в конструкторе классов:

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

Затем я использовал glade для создания другого отдельного файла пользовательского интерфейса с производной GtkContainer, такой (в моем случае GtkBox) в качестве объекта верхнего уровня, а затем изменил имя класса таким же образом, как быстро это делает. Затем я создал отдельный класс для него аналогично _lib/Window.py в быстром шаблоне. Как только это будет сделано, я могу просто создать экземпляр этого нового класса и прикрепить его к указанному контейнеру с помощью такого кода:

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

Я считаю, что такой же подход возможен в другом окне, но вам, возможно, придется не родитель этого Смотрите этот вопрос для получения дополнительной информации об этом здесь

1
ответ дан 4 August 2018 в 15:58

Я делаю это и в своем приложении. Я достиг этого, сделав что-то похожее на следующее:

В вашем главном окне получите ссылку на виджет, который вы хотите использовать в качестве родителя. Он должен быть производным от GtkContainer (например, GtkBox). В моем случае я сделал что-то вроде следующего в конструкторе классов:

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

Затем я использовал glade для создания другого отдельного файла пользовательского интерфейса с производной GtkContainer, такой (в моем случае GtkBox) в качестве объекта верхнего уровня, а затем изменил имя класса таким же образом, как быстро это делает. Затем я создал отдельный класс для него аналогично _lib/Window.py в быстром шаблоне. Как только это будет сделано, я могу просто создать экземпляр этого нового класса и прикрепить его к указанному контейнеру с помощью такого кода:

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

Я считаю, что такой же подход возможен в другом окне, но вам, возможно, придется не родитель этого Смотрите этот вопрос для получения дополнительной информации об этом здесь

1
ответ дан 7 August 2018 в 18:02

Я делаю это и в своем приложении. Я достиг этого, сделав что-то похожее на следующее:

В вашем главном окне получите ссылку на виджет, который вы хотите использовать в качестве родителя. Он должен быть производным от GtkContainer (например, GtkBox). В моем случае я сделал что-то вроде следующего в конструкторе классов:

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

Затем я использовал glade для создания другого отдельного файла пользовательского интерфейса с производной GtkContainer, такой (в моем случае GtkBox) в качестве объекта верхнего уровня, а затем изменил имя класса таким же образом, как быстро это делает. Затем я создал отдельный класс для него аналогично _lib/Window.py в быстром шаблоне. Как только это будет сделано, я могу просто создать экземпляр этого нового класса и прикрепить его к указанному контейнеру с помощью такого кода:

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

Я считаю, что такой же подход возможен в другом окне, но вам, возможно, придется не родитель этого Смотрите этот вопрос для получения дополнительной информации об этом здесь

1
ответ дан 10 August 2018 в 06:50

Я делаю это и в своем приложении. Я достиг этого, сделав что-то похожее на следующее:

В вашем главном окне получите ссылку на виджет, который вы хотите использовать в качестве родителя. Он должен быть производным от GtkContainer (например, GtkBox). В моем случае я сделал что-то вроде следующего в конструкторе классов:

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

Затем я использовал glade для создания другого отдельного файла пользовательского интерфейса с производной GtkContainer, такой (в моем случае GtkBox) в качестве объекта верхнего уровня, а затем изменил имя класса таким же образом, как быстро это делает. Затем я создал отдельный класс для него аналогично _lib/Window.py в быстром шаблоне. Как только это будет сделано, я могу просто создать экземпляр этого нового класса и прикрепить его к указанному контейнеру с помощью такого кода:

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

Я считаю, что такой же подход возможен в другом окне, но вам, возможно, придется не родитель этого Смотрите этот вопрос для получения дополнительной информации об этом здесь

1
ответ дан 15 August 2018 в 18:46
  • 1
    Спасибо, мужик, мне потребовалось бы много времени, чтобы найти этого лол. Вы пытались добавить тему Ambiance (на панели инструментов / в блокноте) в вашу программу? Я использовал код «self.viewport3 = self.builder.get_object (» viewport3 »), но теперь у меня проблема в том, что текст белый / инвертированный (т. Е. Метка« ubuntu »раньше была черным текстом). теперь перевернутый белый). context = self.viewport3.get_style_context () context.add_class (Gtk.STYLE_CLASS_PRIMARY_TOOLBAR) & quot; – Compt 28 June 2012 в 18:15

Другие вопросы по тегам:

Похожие вопросы: