Как встроить контент GtkAboutDialog в виджет GtkNotebook

Я бы рекомендовал это расширение для Chrome http://grabanymedia.altervista.org/, переведенное на английский, итальянский, французский, немецкий, португальский

7
задан 17 May 2012 в 03:56

9 ответов

Вы можете перемещать область содержимого (GtkVBox) из GtkDialog в другую GtkContainer, а затем присоединяться к GtkNotebook - с помощью метода gtk.Widget.reparent ().

about = Gtk.AboutDialog()
about.set_program_name ("Application")
about.set_copyright ("Author")

box = Gtk.VBox ()
about.vbox.reparent (box)
notebook.append_page (box, Gtk.Label("About"))
about.destroy ()
[d3 ] С интерфейсом, созданным в Glade, вы должны сделать простой трюк для этого решения. Создайте вкладку «О программе» в записной книжке с добавленным GtkBox (с идентификатором, например, «about_box»). Тогда вы можете сделать что-то вроде этого:

box = builder.get_object ("about_box")
about.vbox.reparent (box)

По некоторым причинам область содержимого GtkAboutDialog в области [] d1] также содержит GtkButtonBox. Если вам не нужны эти кнопки, просто уничтожьте их:

about.action_area.destroy()

Если вы хотите только кнопку «Кредиты», без кнопки «Закрыть», сделайте что-то вроде этого:

close_button = about.get_widget_for_response(Gtk.ResponseType.CANCEL)
close_button.destroy()
6
ответ дан 25 May 2018 в 11:25
  • 1
    Благодаря! Так или иначе, это, похоже, не работает, так как это не добавляет вкладку. Я не уверен, связано ли это с тем, что я изначально создал ноутбук с Glade, а затем попытаюсь добавить вкладку в код. Я еще не понял это. – David Planella 16 May 2012 в 23:14
  • 2
    После тестирования я могу подтвердить, что приведенный выше код работает для любого Gtk.Notebook, созданного в коде, но если ноутбук был создан с помощью Glade, он не добавит новую вкладку. – David Planella 17 May 2012 в 03:54
  • 3
    Это блестяще, спасибо за продолжение! Теперь это прекрасно. – David Planella 17 May 2012 в 21:54
  • 4
    Один последний вопрос: я могу избавиться от всего виджета action_area, но есть ли способ избавиться от close_button? поле, которое теперь встроено в вкладку, делает кнопку ненужной. – David Planella 17 May 2012 в 23:40

Вы можете перемещать область содержимого (GtkVBox) из GtkDialog в другую GtkContainer, а затем присоединяться к GtkNotebook - используя метод gtk.Widget.reparent () .

about = Gtk.AboutDialog()
about.set_program_name ("Application")
about.set_copyright ("Author")

box = Gtk.VBox ()
about.vbox.reparent (box)
notebook.append_page (box, Gtk.Label("About"))
about.destroy ()

С интерфейсом, созданным в Glade, вы должны сделать простой трюк для этого решения. Создайте вкладку «О программе» в записной книжке с добавленным GtkBox (с идентификатором, например, «about_box»). Затем вы можете сделать что-то вроде этого:

box = builder.get_object ("about_box")
about.vbox.reparent (box)

По некоторым причинам область содержимого GtkAboutDialog Glade также содержит GtkButtonBox. Если вам не нужны эти кнопки, просто уничтожьте их:

about.action_area.destroy()

Если вы хотите только кнопку «Кредиты», без кнопки «Закрыть», сделайте что-то вроде этого:

close_button = about.get_widget_for_response(Gtk.ResponseType.CANCEL)
close_button.destroy()
6
ответ дан 25 July 2018 в 18:55

Вы можете перемещать область содержимого (GtkVBox) из GtkDialog в другую GtkContainer, а затем присоединяться к GtkNotebook - используя метод gtk.Widget.reparent () .

about = Gtk.AboutDialog()
about.set_program_name ("Application")
about.set_copyright ("Author")

box = Gtk.VBox ()
about.vbox.reparent (box)
notebook.append_page (box, Gtk.Label("About"))
about.destroy ()

С интерфейсом, созданным в Glade, вы должны сделать простой трюк для этого решения. Создайте вкладку «О программе» в записной книжке с добавленным GtkBox (с идентификатором, например, «about_box»). Затем вы можете сделать что-то вроде этого:

box = builder.get_object ("about_box")
about.vbox.reparent (box)

По некоторым причинам область содержимого GtkAboutDialog Glade также содержит GtkButtonBox. Если вам не нужны эти кнопки, просто уничтожьте их:

about.action_area.destroy()

Если вы хотите только кнопку «Кредиты», без кнопки «Закрыть», сделайте что-то вроде этого:

close_button = about.get_widget_for_response(Gtk.ResponseType.CANCEL)
close_button.destroy()
6
ответ дан 31 July 2018 в 11:14

Вы можете перемещать область содержимого (GtkVBox) из GtkDialog в другую GtkContainer, а затем присоединяться к GtkNotebook - используя метод gtk.Widget.reparent () .

about = Gtk.AboutDialog()
about.set_program_name ("Application")
about.set_copyright ("Author")

box = Gtk.VBox ()
about.vbox.reparent (box)
notebook.append_page (box, Gtk.Label("About"))
about.destroy ()

С интерфейсом, созданным в Glade, вы должны сделать простой трюк для этого решения. Создайте вкладку «О программе» в записной книжке с добавленным GtkBox (с идентификатором, например, «about_box»). Затем вы можете сделать что-то вроде этого:

box = builder.get_object ("about_box")
about.vbox.reparent (box)

По некоторым причинам область содержимого GtkAboutDialog Glade также содержит GtkButtonBox. Если вам не нужны эти кнопки, просто уничтожьте их:

about.action_area.destroy()

Если вы хотите только кнопку «Кредиты», без кнопки «Закрыть», сделайте что-то вроде этого:

close_button = about.get_widget_for_response(Gtk.ResponseType.CANCEL)
close_button.destroy()
6
ответ дан 2 August 2018 в 01:03

Вы можете перемещать область содержимого (GtkVBox) из GtkDialog в другую GtkContainer, а затем присоединяться к GtkNotebook - используя метод gtk.Widget.reparent () .

about = Gtk.AboutDialog()
about.set_program_name ("Application")
about.set_copyright ("Author")

box = Gtk.VBox ()
about.vbox.reparent (box)
notebook.append_page (box, Gtk.Label("About"))
about.destroy ()

С интерфейсом, созданным в Glade, вы должны сделать простой трюк для этого решения. Создайте вкладку «О программе» в записной книжке с добавленным GtkBox (с идентификатором, например, «about_box»). Затем вы можете сделать что-то вроде этого:

box = builder.get_object ("about_box")
about.vbox.reparent (box)

По некоторым причинам область содержимого GtkAboutDialog Glade также содержит GtkButtonBox. Если вам не нужны эти кнопки, просто уничтожьте их:

about.action_area.destroy()

Если вы хотите только кнопку «Кредиты», без кнопки «Закрыть», сделайте что-то вроде этого:

close_button = about.get_widget_for_response(Gtk.ResponseType.CANCEL)
close_button.destroy()
6
ответ дан 4 August 2018 в 16:35

Вы можете перемещать область содержимого (GtkVBox) из GtkDialog в другую GtkContainer, а затем присоединяться к GtkNotebook - используя метод gtk.Widget.reparent () .

about = Gtk.AboutDialog()
about.set_program_name ("Application")
about.set_copyright ("Author")

box = Gtk.VBox ()
about.vbox.reparent (box)
notebook.append_page (box, Gtk.Label("About"))
about.destroy ()

С интерфейсом, созданным в Glade, вы должны сделать простой трюк для этого решения. Создайте вкладку «О программе» в записной книжке с добавленным GtkBox (с идентификатором, например, «about_box»). Затем вы можете сделать что-то вроде этого:

box = builder.get_object ("about_box")
about.vbox.reparent (box)

По некоторым причинам область содержимого GtkAboutDialog Glade также содержит GtkButtonBox. Если вам не нужны эти кнопки, просто уничтожьте их:

about.action_area.destroy()

Если вы хотите только кнопку «Кредиты», без кнопки «Закрыть», сделайте что-то вроде этого:

close_button = about.get_widget_for_response(Gtk.ResponseType.CANCEL)
close_button.destroy()
6
ответ дан 6 August 2018 в 01:15

Вы можете перемещать область содержимого (GtkVBox) из GtkDialog в другую GtkContainer, а затем присоединяться к GtkNotebook - используя метод gtk.Widget.reparent () .

about = Gtk.AboutDialog()
about.set_program_name ("Application")
about.set_copyright ("Author")

box = Gtk.VBox ()
about.vbox.reparent (box)
notebook.append_page (box, Gtk.Label("About"))
about.destroy ()

С интерфейсом, созданным в Glade, вы должны сделать простой трюк для этого решения. Создайте вкладку «О программе» в записной книжке с добавленным GtkBox (с идентификатором, например, «about_box»). Затем вы можете сделать что-то вроде этого:

box = builder.get_object ("about_box")
about.vbox.reparent (box)

По некоторым причинам область содержимого GtkAboutDialog Glade также содержит GtkButtonBox. Если вам не нужны эти кнопки, просто уничтожьте их:

about.action_area.destroy()

Если вы хотите только кнопку «Кредиты», без кнопки «Закрыть», сделайте что-то вроде этого:

close_button = about.get_widget_for_response(Gtk.ResponseType.CANCEL)
close_button.destroy()
6
ответ дан 7 August 2018 в 18:40

Вы можете перемещать область содержимого (GtkVBox) из GtkDialog в другую GtkContainer, а затем присоединяться к GtkNotebook - используя метод gtk.Widget.reparent () .

about = Gtk.AboutDialog()
about.set_program_name ("Application")
about.set_copyright ("Author")

box = Gtk.VBox ()
about.vbox.reparent (box)
notebook.append_page (box, Gtk.Label("About"))
about.destroy ()

С интерфейсом, созданным в Glade, вы должны сделать простой трюк для этого решения. Создайте вкладку «О программе» в записной книжке с добавленным GtkBox (с идентификатором, например, «about_box»). Затем вы можете сделать что-то вроде этого:

box = builder.get_object ("about_box")
about.vbox.reparent (box)

По некоторым причинам область содержимого GtkAboutDialog Glade также содержит GtkButtonBox. Если вам не нужны эти кнопки, просто уничтожьте их:

about.action_area.destroy()

Если вы хотите только кнопку «Кредиты», без кнопки «Закрыть», сделайте что-то вроде этого:

close_button = about.get_widget_for_response(Gtk.ResponseType.CANCEL)
close_button.destroy()
6
ответ дан 10 August 2018 в 07:19

Вы можете перемещать область содержимого (GtkVBox) из GtkDialog в другую GtkContainer, а затем присоединяться к GtkNotebook - используя метод gtk.Widget.reparent () .

about = Gtk.AboutDialog()
about.set_program_name ("Application")
about.set_copyright ("Author")

box = Gtk.VBox ()
about.vbox.reparent (box)
notebook.append_page (box, Gtk.Label("About"))
about.destroy ()

С интерфейсом, созданным в Glade, вы должны сделать простой трюк для этого решения. Создайте вкладку «О программе» в записной книжке с добавленным GtkBox (с идентификатором, например, «about_box»). Затем вы можете сделать что-то вроде этого:

box = builder.get_object ("about_box")
about.vbox.reparent (box)

По некоторым причинам область содержимого GtkAboutDialog Glade также содержит GtkButtonBox. Если вам не нужны эти кнопки, просто уничтожьте их:

about.action_area.destroy()

Если вы хотите только кнопку «Кредиты», без кнопки «Закрыть», сделайте что-то вроде этого:

close_button = about.get_widget_for_response(Gtk.ResponseType.CANCEL)
close_button.destroy()
6
ответ дан 15 August 2018 в 19:20
  • 1
    Спасибо! Так или иначе, это, похоже, не работает, так как это не добавляет вкладку. Я не уверен, связано ли это с тем, что я изначально создал ноутбук с Glade, а затем попытаюсь добавить вкладку в код. Я еще не понял это. – David Planella 16 May 2012 в 23:14
  • 2
    После тестирования я могу подтвердить, что приведенный выше код работает для любого Gtk.Notebook, созданного в коде, но если ноутбук был создан с помощью Glade, он не добавит новую вкладку. – David Planella 17 May 2012 в 03:54
  • 3
    Это блестяще, спасибо за продолжение! Теперь это прекрасно. – David Planella 17 May 2012 в 21:54
  • 4
    Один последний вопрос: я могу избавиться от всего виджета action_area, но есть ли способ избавиться от close_button? поле, которое теперь встроено в вкладку, делает кнопку ненужной. – David Planella 17 May 2012 в 23:40

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

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