在 Glade 中创建可修改的 GtkScale 对象
Creating modifiable GtkScale object in Glade
我正在尝试使用 gtkme (1.3.5) library and I'm having trouble using GtkScale
object in Glade (3.20.0-1) 开发一个简单的 GTK 应用程序。我创建了其中一个,它在 .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
上。没有 Adjustment
,Scale
显示为您的图片。
因此,在 Glade
中,您需要定义这两个元素。 Adjustment
将显示为不可见元素(见下文),与实际小部件树中的元素不同。 Scale
最初会如您所见显示,并且必须连接到 Adjustment
才能实际显示某些内容。 Adjustment
和 Scale
在 Glade
中是不同的 'widget sections',这可能不是很明显:
它会像这样出现在小部件树中:
在Scale
的属性中,您可以select您想要分配给它的Adjustment
。当然,您也可以在 运行 时间执行此操作。 'manually' 使工作 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
小部件也是如此(尽管在 [=17 中这样做更合乎逻辑=] 无论如何。
添加参考:
编程时的巨大帮助 Python
是 Lazca 的 Python PGI API
reference. It not only documents Gtk
calls but a large number of other libraries which are similarly accessible. You can consult it online, or you can install a copy on your computer. Eg. 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 曾经很有用,尽管接口并不完全可靠。现在好像已经停用了
我正在尝试使用 gtkme (1.3.5) library and I'm having trouble using GtkScale
object in Glade (3.20.0-1) 开发一个简单的 GTK 应用程序。我创建了其中一个,它在 .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
上。没有 Adjustment
,Scale
显示为您的图片。
因此,在 Glade
中,您需要定义这两个元素。 Adjustment
将显示为不可见元素(见下文),与实际小部件树中的元素不同。 Scale
最初会如您所见显示,并且必须连接到 Adjustment
才能实际显示某些内容。 Adjustment
和 Scale
在 Glade
中是不同的 'widget sections',这可能不是很明显:
它会像这样出现在小部件树中:
在Scale
的属性中,您可以select您想要分配给它的Adjustment
。当然,您也可以在 运行 时间执行此操作。 'manually' 使工作 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
小部件也是如此(尽管在 [=17 中这样做更合乎逻辑=] 无论如何。
添加参考:
编程时的巨大帮助
Python
是 Lazca 的Python PGI API
reference. It not only documentsGtk
calls but a large number of other libraries which are similarly accessible. You can consult it online, or you can install a copy on your computer. Eg. 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 曾经很有用,尽管接口并不完全可靠。现在好像已经停用了