В Gtk как убрать тень из строки состояния? - PullRequest
0 голосов
/ 21 января 2010

Если я сделаю Statusbar и PackEnd Label к нему, это будет выглядеть примерно так:

alt text

Тень исчезает над Label, но остается над остальной частью Statusbar. Я хочу удалить Тень из всего Statusbar. В документации PyGTK упоминается свойство с именем shadow-type, но оно доступно только для чтения и нигде в GTK # не найдено. Как мне избавиться от этой тени?

Ответы [ 3 ]

2 голосов
/ 22 января 2010

Запрещено упаковывать вещи в строку состояния, это не означает, что это обычный контейнер.

Чтобы отобразить текст в строке состояния, используйте его собственный API, например gtk_statusbar_push () из C. GTK # docs на go-mono.com, кажется, отключены, поэтому я не могу связываться с ними прямо сейчас.

2 голосов
/ 22 января 2010

shadow-type - это свойство стиля, которое означает, что оно фактически должно быть установлено темой пользователя и / или рабочего стола. Вы можете установить его, написав файл пользовательского стиля для своего приложения и прочитав его, используя gtk.RcStyle.

Если вам нужно два отдельных сообщения о состоянии в вашем приложении, вы можете также рассмотреть возможность упаковки двух строк состояния в hbox.

1 голос
/ 22 января 2010

Первым дочерним элементом GtkStatusbar является GtkFrame, который задает теневую границу ( edit: , очевидно, нет). Вы должны быть в состоянии сделать это:

statusbar.get_children()[0].set_shadow_type(gtk.SHADOW_NONE)

Несколько приложений (особенно Epiphany и, в прошлом, Galeon) фактически заменяют содержимое этого фрейма на HBox, чтобы они могли добавлять вещи в строку состояния.

...