답변:
좋아, 이것은 단계적으로 될 것입니다 :
AwesomeTextView
, 그것의 모듈은로 불릴 것 awesome_text_view
입니다. 이것들이 우리에게 필요한 유일한 이름입니다.glade 위젯은 모듈과 카탈로그의 두 부분으로 구성됩니다.
우리는 카탈로그를 만들고, awesome_text_view.xml
루트로 저장합니다./usr/share/glade3/catalogs/
이것은 다음과 같습니다
<glade-catalog name="awesome_text_view"
library="gladepython"
domain="glade-3"
depends="gtk+">
<init-function>glade_python_init</init-function>
<glade-widget-classes>
<glade-widget-class title="Awesome TextView"
name="AwesomeTextView"
generic-name="awesome_text_view"/>
</glade-widget-classes>
<glade-widget-group name="python" title="Python">
<glade-widget-class-ref name="AwesomeTextView"/>
</glade-widget-group>
</glade-catalog>
이 템플릿이 작동하는 대로 복사하고 수정해야 합니다 . :-)
우리는 모듈을 만들고, awesome_text_view.py
루트로 다시 저장합니다./usr/lib/glade3/modules/
그 모습은 다음과 같습니다.
import gobject
import gtk
import pango
class AwesomeTextView (gtk.TextView):
__gtype_name__ = 'AwesomeTextView'
def __init__(self):
gtk.TextView.__init__(self)
def set_font(self, font_description):
self.modify_font(pango.FontDescription(font_description))
이제 Glade에 표시되며 응용 프로그램에 추가 할 수 있습니다.
마지막으로, 당신은 단지
export PYTHONPATH="$PYTHONPATH:/usr/lib/glade3/modules/"
그게 다야!
위젯 사용 방법을 보여주는 작은 테스트 앱이 있습니다.
import gtk
import awesome_text_view
class App (object):
builder = gtk.Builder()
def __init__(self):
self.builder.add_from_file("test.glade")
self.builder.connect_signals(self)
self.builder.get_object("awesome_text_view1").set_font("mono")
gtk.main()
def on_window1_destroy(self, widget):
gtk.main_quit()
App()
위젯에 대한 카탈로그를 작성하고이 폴더를 참조하십시오. /usr/share/glade3/catalogs/
그러면 gnome.xml
, 예제를 살펴보십시오.
그놈 문서도 참조하십시오 :
gtk+.xml
방금 gnome.xml