我尝试使用gtkme (1.3.5) library开发一个简单的GTK应用程序,但我在Glade (3.20.0-1)中使用GtkScale
对象时遇到问题。我创建了其中一个,它在.glade
文件中默认定义为:
<object class="GtkScale">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="round_digits">1</property>
</object>
然而,它出现在Glade和我的应用程序中的方式使它无法使用,即使在弄乱了所有可用设置之后:
我希望在pavucontrol中看到类似音量条的内容:
在弄清this thread的代码后,我了解到将对象更改为<widget class="GtkHScale" id="hscale1">
或添加<property name="update_policy">GTK_UPDATE_CONTINUOUS</property>
并不会改变任何内容。
答案 0 :(得分:2)
要获得完全正常工作Scale
,您需要定义两个元素:A Gtk.Adjustment
(执行数学工作并定义限制)和Gtk.Scale
显示元素Scale
。如果没有Adjustment
,则Scale
会在图片中显示。
因此,在Glade
中,您需要定义这两个元素。除了实际窗口小部件树中的元素外,Adjustment
将显示为不可见元素(参见下文)。 Scale
最初会以您看到的方式显示,并且必须连接到Adjustment
才能真正显示内容。 Adjustment
和Scale
位于Glade
中不同的“小部件”中,这可能并不明显:
在Scale
的属性中,您可以选择要分配给它的Adjustment
。当然,您也可以在运行时执行此操作。 “手动”生成Scale
的代码就是这样(即没有Glade
,但直接在Python代码中):
adj = Gtk.Adjustment(100.0, 0.0, 150.0, 2.0, 10.0, 10.0)
scale = Gtk.Scale()
scale.set_orientation(Gtk.Orientation.HORIZONTAL)
scale.set_adjustment(adj)
您可以在Adjustment
中定义Glade
(或稍后添加)Scale
窗口小部件也是如此(尽管在Glade
中执行此操作更合乎逻辑反正。
添加了参考文献:
编程Python
时的巨大帮助是Lazca的Python PGI API
参考。它不仅记录了Gtk
个调用,还记录了大量其他类似的可访问的库。您可以在线查阅,也可以在计算机上安装副本。例如。 the parameters for the Gtk.Adjustment
are here
One of the most complete tutorials for Python
is here。它只是不包括GtkScale
,但对其余部分来说相当彻底。
有a huge number of tutorials on the 'net。他们中的许多都很优秀。很少遇到更困难的问题,但即便如此,你也可能会在别人的博客中找到解决方案。
最后,另一个巨大的资源是the Nullege Python source code search engine
。虽然界面不完全可靠,但BlackDuck's Code search曾经很有用。它现在似乎已被禁用。