在Gtk中,如何从状态栏中删除阴影?

时间:2010-01-21 17:05:14

标签: c# gtk gtk#

如果我制作了StatusbarPackEndLabel,它看起来像这样:

alt text

暗影在Label上消失,但仍然在Statusbar的剩余部分上方。我想从整个Statusbar中移除阴影。 PyGTK documentation提到了一个名为shadow-type的属性,但它是只读的,并且在GTK#中找不到。我如何摆脱这种阴影?

3 个答案:

答案 0 :(得分:2)

shadow-type是一个样式属性,这意味着它实际上应该由用户和/或桌面主题设置。您可以通过为应用程序编写自定义样式文件并使用gtk.RcStyle读取它来设置它。

如果您的应用程序中需要两个单独的状态消息,您还可以考虑将两个状态栏打包到一个hbox中。

答案 1 :(得分:2)

你不应该把东西打包到状态栏中,它不是一般的容器。

要在状态栏中显示文字,请使用自己的API,即来自C的gtk_statusbar_push()。go-mono.com上的GTK# docs似乎处于离线状态,因此无法链接到这些现在。

答案 2 :(得分:1)

GtkStatusbar的第一个孩子是GtkFrame,它提供了阴影边框(编辑:显然不是)。你应该能够做到这一点:

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

几个应用程序(最着名的是Epiphany,以及过去的Galeon)实际上用HBox替换了该框架的内容,以便他们可以向状态栏添加内容。