Dan*_*Dan 4 python glade pygobject
我想将现有的Gtk小部件子类化并使其与Glade3一起使用.代码都是python,我正在使用PyGObject.
我想要做的是扩展Gtk.TextView并能够将它添加到我的glade UI,就好像它是一个原生小部件.
我读过Glade 2有可能,但我不知道如何用Glade 3做到这一点,我似乎无法找到任何关于此的示例或文档.任何帮助,将不胜感激.谢谢.
终于找到了怎么做.首先,您必须声明您的glade文件取决于目录.
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gtk+ 3.0 -->
<!-- interface-requires the_catalog_name 1.0 -->
...Rest of the glade file...
Run Code Online (Sandbox Code Playgroud)
接下来,创建一个catalog.xml文件.要扩展树视图,它应该看起来像这样:
<glade-catalog name="the_catalog_name" domain="glade-3"
depends="gtk+" version="1.0">
<glade-widget-classes>
<glade-widget-class title="My Custom Text View" name="CustomTextView"
generic-name="CustomTextView" parent="GtkTextView"
icon-name="widget-gtk-textview"/>
</glade-widget-classes>
</glade-catalog>
Run Code Online (Sandbox Code Playgroud)
就是这样.显然,还没有编写python代码,但这不会阻止Glade显示您的自定义小部件.它只会将其视为普通的TextView,Label或其他您想要扩展的内容.
哦,我无法在Glade本身找到一种方法来创建一个CustomTextView.但你可以做的是在林间空地添加一个常规TextView,保存glade文件并在文本编辑器中打开它.只需查看您创建的树视图并进行如下更改:
- <object class="TreeView" id="treeview1">
+ <object class="CustomTreeView" id="treeview1">
Run Code Online (Sandbox Code Playgroud)
在林间空地打开它,它出现了.然后在python中定义一个CustomTreeView类并根据需要进行扩展.
| 归档时间: |
|
| 查看次数: |
1175 次 |
| 最近记录: |