ঠিক আছে, এটি ধাপে ধাপে হতে চলেছে:
- আমাদের উইজেটের নামকরণ হতে চলেছে
AwesomeTextView
, এতে থাকা মডিউলটি কল করা হবে awesome_text_view
। এই আমাদের একমাত্র নাম প্রয়োজন।
একটি গ্লেড উইজেট দুটি অংশ, মডিউল এবং ক্যাটালগ নিয়ে গঠিত।
আমরা একটি ক্যাটালগ তৈরি করি 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))
এটি এখন গ্লেডে প্রদর্শিত হয়েছে এবং আপনি এটি আপনার অ্যাপ্লিকেশনটিতে যুক্ত করতে পারেন।
অবশেষে, আপনার কেবল দরকার
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()