可以将填充水平设置为低于Gtk :: Scale的值吗?

时间:2012-05-16 17:25:34

标签: user-interface gtk gtkmm

虽然使用set_fill_level设置填充水平高于Scale的值是非常明确的,但填充水平低于Scale的值似乎不起作用。

为了澄清我想,例如,当滑块为50%时,能够将填充水平设置为25%

FFFF----S-------
  • 我错过了一些明显的东西吗?

或者:

  • 有没有人知道要让它发挥作用的聪明黑客?

额外细节:

  • libgtk2.0-dev的
  • libgtkmm-2.4-dev的
  • Ubuntu 10.04.4
  • 默认主题(氛围)

不良行为的图片:

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:2)

您只需要禁用限制:

  

此外,可以将范围的滑块位置限制为小于填充水平的值。这是gtk_range_set_restrict_to_fill_level()的控制器 [sic] ,默认情况下已启用。

Source

更新:示例:

GtkHScale with fill-level=3 and value=5

import gtk

s = gtk.HScale()
s.set_show_fill_level(True)
s.set_restrict_to_fill_level(False)  # <=====
s.set_range(0, 10)
s.set_fill_level(3)
s.set_value(5)

w = gtk.Window()
w.connect('destroy', lambda *x: gtk.main_quit())
w.add(s)
w.show_all()
gtk.main()

更新2:您的屏幕截图中出现的问题很可能是GTK +主题中的错误。我测试过的大约一半主题(GTK + 2和3)都有这个问题。为了记录,我的截图是使用Adwaita(GTK + 3)主题拍摄的。