Как добавить детей в StatusBar в Glade3? - PullRequest
8 голосов
/ 04 января 2012

В GTK2 StatusBar был простым контейнером, похожим на HBox. Glade 3 (gtk3) теперь показывает это сообщение, когда я пытаюсь добавить дочерние виджеты в мою строку состояния:

Widgets of type Status Bar need placeholders to add children.

Что такое заполнители?

Я предпочитаю создавать пользовательский интерфейс целиком в Glade, но если это больше не работает, встроить его в код тоже хорошо. Я использую Python 3.2 и Gtk через самоанализ GObject.

1 Ответ

6 голосов
/ 06 января 2012

В Gnome 3 строки состояния больше не являются контейнерами; они больше похожи на стопки сообщений. Чтобы отобразить сообщение, получите новый идентификатор контекста и поместите сообщение в стек сообщений, связанных со строкой состояния:

context_id = statusbar.get_context_id("progress_message")
statusbar.push(context_id, "Almost done...")

или

statusbar.push(1, "Almost done...")

И чтобы снова удалить сообщение, используйте statusbar.pop(1). Поэтому в строке состояния больше нельзя отображать такие элементы, как индикаторы выполнения или изображения.

См. Также: GtkStatusbar в Центре разработки Gnome

...