Tôi đang cố gắng sử dụng tệp Glade có tiện ích GtkSourceView trong PyGObject. Tôi đã viết một hướng dẫn nhỏ về cách bắt đầu sử dụng GtkSourceView mới 3.0 trong Glade: http://cjenkins.wordpress.com/2012/05/08/use-gtksourceview-widget-in-glade/Tải GUI từ Glade với GtkSourceView trong PyGObject
Vấn đề là khi tôi muốn tải mà Glade từ PyGObject:
from gi.repository import Gtk, GtkSource
from os.path import abspath, dirname, join
WHERE_AM_I = abspath(dirname(__file__))
class MyApp(object):
def __init__(self):
self.builder = Gtk.Builder()
self.glade_file = join(WHERE_AM_I, 'test.glade')
self.builder.add_from_file(self.glade_file)
if __name__ == '__main__':
try:
gui = MyApp()
Gtk.main()
except KeyboardInterrupt:
pass
Khi tôi chạy tập tin đó tôi nhận lỗi này:
Traceback (most recent call last):
File "test.py", line 15, in <module>
gui = MyApp()
File "test.py", line 11, in __init__
self.builder.add_from_file(self.glade_file)
File "/usr/lib/python2.7/dist-packages/gi/types.py", line 43, in function
return info.invoke(*args, **kwargs)
gi._glib.GError: Invalid object type `GtkSourceView'
File Glade (test.glade) chỉ là một cửa sổ với một widget GtkSourceView trong đó:
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gtksourceview 3.0 -->
<!-- interface-requires gtk+ 3.0 -->
<object class="GtkWindow" id="window1">
<property name="can_focus">False</property>
<child>
<object class="GtkSourceView" id="gtksourceview1">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="has_tooltip">True</property>
<property name="left_margin">2</property>
<property name="right_margin">2</property>
<property name="tab_width">4</property>
<property name="auto_indent">True</property>
<property name="indent_on_tab">False</property>
</object>
</child>
</object>
</interface>
Làm thế nào để giải quyết điều này là do kiến thức của tôi ngay bây giờ. Tôi cho rằng tôi cần phải đăng ký một số loại trước khi gọi add_from_file(), phải không? Bất kỳ ý tưởng được hoan nghênh.
Tôi đang sử dụng:
- Ubuntu Precise 12.04
- Glade 3.12.0
- libgtksourceview 3,0
- Gtk + 3,0
Kind coi