更改GtkScale字体/对齐/颜色

更改GtkScale字体/对齐/颜色,gtk,gdk,pango,Gtk,Gdk,Pango,是否有一种简单的方法可以更改GtkScale小部件的值文本的字体、对齐方式和颜色?例如,我想要一个红色粗体数字,而不是标准的黑色数字 理想情况下,您应该在主题中设置这些属性。但是,如果需要应用程序覆盖主题,可以调用gtk\u widget\u modify\u font将文本变为粗体,调用gtk\u widget\u modify\u fg将文本变为红色。使用PyGTK进行演示: import gtk, pango w = gtk.HScale() # bold: get existing

是否有一种简单的方法可以更改GtkScale小部件的值文本的字体、对齐方式和颜色?例如,我想要一个红色粗体数字,而不是标准的黑色数字

理想情况下,您应该在主题中设置这些属性。但是,如果需要应用程序覆盖主题,可以调用
gtk\u widget\u modify\u font
将文本变为粗体,调用
gtk\u widget\u modify\u fg
将文本变为红色。使用PyGTK进行演示:

import gtk, pango

w = gtk.HScale()

# bold: get existing widget's font description and set weight to bold
fdesc = w.get_pango_context().get_font_description()
fdesc.set_weight(pango.WEIGHT_BOLD)
w.modify_font(fdesc)

# red
w.modify_fg(gtk.STATE_NORMAL, gtk.gdk.Color('red'))

# show it
win = gtk.Window()
win.add(w)
win.show_all()
gtk.main()
…结果是:


这很有效,但当我将
value\u pos
设置为
GTK\u pos\u RIGHT
时,我在右边有一个难看的间距,因为GTK为高值分配(有时未使用)空间。所以我想设置值文本的对齐方式。“有什么办法吗?”GenesisRock我不知道你的意思;在我的示例中,当我使用
w.set\u value\u pos(gtk.pos\u RIGHT)
设置间距时,我看不到难看的间距,或者我无法识别它。您是否尝试过更改小部件的
值间距
属性?不,这不是我的意思。但实际上很简单:GTK为值标签分配了足够的空间来显示整个范围。但是,当范围非常大时,分配的空间也非常大,并且会产生巨大的间隙。下图应该对此进行解释(范围为0到1000000):!。但在我的应用程序中,这看起来非常难看,所以我想右对齐标签。它应该像“SLIDER-SPACE-LABEL”而不是“SLIDER-LABEL-SPACE”@GenesisRock有
gtk\u scale\u get\u layout()
,但我无法通过改变返回的对象来产生可见的结果。如果我是你,我会调用
gtk\u scale\u set\u draw\u value(False)
,然后自己打印值。这将使你完全控制对齐和其他一切。是的,我厌倦了布局。我自己的东西,它不是真的工作。因此,我认为最好手动显示该值。