我正在尝试使用 gtkme (1.3.5) library 开发一个简单的 GTK 应用程序我在使用 GtkScale
时遇到问题Glade (3.20.0-1) 中的对象。我创建了其中之一,它在 .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>
不会改变任何东西。
最佳答案
要获得完全工作的Scale
,您需要定义两个元素:Gtk.Adjustment
(执行数学工作并定义限制)和 Gtk.Scale
显示 Scale
上的元素。如果没有调整
,比例
将显示为图像中的样子。
因此,在 Glade
中,您需要定义这两个元素。除了实际小部件树中的元素之外,Adjustment
将显示为不可见元素(见下文)。 Scale
最初将按照您所看到的方式显示,并且必须连接到 Adjustment
才能实际显示某些内容。 Adjustment
和 Scale
位于 Glade
中的不同“小部件部分”,这可能并不明显:
在比例
的属性中,您可以选择要分配给它的调整
。当然,您也可以在运行时执行此操作。 “手动”创建工作 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)
您可以在 Glade
中定义 Adjustment
(或稍后添加),Scale
小部件也是如此(尽管它更符合逻辑)无论如何,在 Glade
中做到这一点。
添加引用:
Lazca 的
Python PGI API
为Python
编程提供了巨大帮助。引用。它不仅记录了 Gtk 调用,还记录了大量可类似访问的其他库。您可以在线查阅,也可以在计算机上安装副本。例如。 the parameters for theGtk.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曾经很有用,尽管界面并不完全可靠。现在好像已经被禁用了。
关于python - 在 Glade 中创建可修改的 GtkScale 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38427503/