পিআইজিওজেক্ট ব্যবহার করে লিনাক্স ডেস্কটপের আওতায় জিইউআই অ্যাপ্লিকেশন কীভাবে তৈরি করবেন - পর্ব 1


লিনাক্সে অ্যাপ্লিকেশন তৈরি করা বিভিন্ন উপায়ে ব্যবহার করা যেতে পারে, তবে এর সীমিত পদ্ধতি রয়েছে, তাই সহজতম এবং সর্বাধিক কার্যকরী প্রোগ্রামিং ভাষা এবং গ্রন্থাগারগুলি ব্যবহার করে আমরা লিনাক্সের অধীনে অ্যাপ্লিকেশন তৈরির বিষয়ে দ্রুত নজর রাখতে পারি ডেস্কটপ জিটিকে + লাইব্রেরি ব্যবহার করে পাইথন প্রোগ্রামিং ভাষার সাথে "পাইগোজেক্ট" বলে।

পাইগোবজেক্ট পাইথনের মতো প্রোগ্রামিং ভাষার জন্য বাইন্ডিং তৈরি করতে জিওজেক্ট ইন্ট্রোস্পেকশন ব্যবহার করে, পাইজিবিজেক্ট পিগটিকে থেকে পরবর্তী প্রজন্মের, আপনি বলতে পারেন যে পিজিওজেক্ট = পাইথন + জিটিকে 3।

আজ, আমরা লিনাক্স ডেস্কটপের অধীনে জিটিকে + লাইব্রেরি এবং পাইগোবজেক্ট ভাষা ব্যবহার করে জিইউআই (গ্রাফিকাল ইউজার ইন্টারফেস) অ্যাপ্লিকেশন তৈরি সম্পর্কে একটি সিরিজ শুরু করতে যাচ্ছি, সিরিজটি নিম্নলিখিত বিষয়গুলি কভার করবে:

প্রথমত, পাইথনে আপনার কিছু প্রাথমিক জ্ঞান থাকতে হবে; পাইথন একটি খুব আধুনিক এবং সহজেই প্রোগ্রামিং ভাষা ব্যবহারের ভাষা। পাইথন ব্যবহার করে এটি বিশ্বের অন্যতম বিখ্যাত প্রোগ্রামিং ল্যাঙ্গুয়েজ, আপনি অনেক দুর্দান্ত অ্যাপ্লিকেশন এবং সরঞ্জাম তৈরি করতে সক্ষম হবেন। আপনি কোডাকেডেমি.কম এর মতো কিছু নিখরচায় কোর্স নিতে পারেন বা পাইথন সম্পর্কিত কিছু বই এখানে পড়তে পারেন:

জিটিকে + ডেস্কটপ অ্যাপ্লিকেশনগুলির জন্য গ্রাফিক্যাল ইউজার ইন্টারফেস তৈরির জন্য একটি ওপেনসোর্স ক্রস-প্ল্যাটফর্মের সরঞ্জামকিট, এটি প্রথম 1998 সালে জিআইএমপির জন্য জিইউআই সরঞ্জামকিট হিসাবে শুরু হয়েছিল, পরে এটি অন্যান্য অনেক অ্যাপ্লিকেশন এবং শীঘ্রই জিইউআই তৈরির জন্য একটি বিখ্যাত গ্রন্থাগার হয়ে উঠল। জিটিকে + এলজিপিএল লাইসেন্সের আওতায় প্রকাশিত হয়েছে।

লিনাক্সের আওতায় জিইউআই অ্যাপ্লিকেশন তৈরি করা হচ্ছে

জিটিকে + এবং পাইথন ব্যবহার করে অ্যাপ্লিকেশন তৈরির জন্য দুটি উপায় রয়েছে:

  1. কেবল কোড ব্যবহার করে গ্রাফিকাল ইন্টারফেস লেখা
  2. গ্ল্যাড ” প্রোগ্রামটি ব্যবহার করে গ্রাফিকাল ইন্টারফেসের নকশা করা; যা সহজেই জিটিকে + ইন্টারফেসগুলি ডিজাইন করার জন্য রu্যাড সরঞ্জাম, গ্ল্যাড জিইউআই কে এক্সএমএল ফাইল হিসাবে উত্পন্ন করে যা জিইউআই তৈরি করতে যে কোনও প্রোগ্রামিং ভাষার সাথে ব্যবহার করা যেতে পারে, জিইউআইয়ের এক্সএমএল ফাইল রফতানি করার পরে, আমরা এক্সএমএল ফাইলটি আমাদের সাথে লিঙ্ক করতে সক্ষম হব প্রোগ্রাম আমরা চাই কাজ করতে।

আমরা উভয় উপায় সংক্ষেপে ব্যাখ্যা করব।

কোড ব্যবহার করে জিইউআই লেখা কেবল নুব প্রোগ্রামার এবং খুব সময় নষ্টের জন্য কিছুটা শক্ত হতে পারে তবে এটি ব্যবহার করে আমরা আমাদের প্রোগ্রামগুলির জন্য খুব কার্যকরী জিইউআই তৈরি করতে পারি, আমরা গ্ল্যাডের মতো কিছু সরঞ্জাম ব্যবহার করে তৈরি করি তার চেয়ে বেশি।

আসুন নীচের উদাহরণটি নেওয়া যাক।

#!/usr/bin/python
# -*- coding: utf-8 -*-

from gi.repository import Gtk

class ourwindow(Gtk.Window):

    def __init__(self):
        Gtk.Window.__init__(self, title="My Hello World Program")
        Gtk.Window.set_default_size(self, 400,325)
        Gtk.Window.set_position(self, Gtk.WindowPosition.CENTER)

        button1 = Gtk.Button("Hello, World!")
        button1.connect("clicked", self.whenbutton1_clicked)

        self.add(button1)
        
    def whenbutton1_clicked(self, button):
      print "Hello, World!"

window = ourwindow()        
window.connect("delete-event", Gtk.main_quit)
window.show_all()
Gtk.main()

উপরের কোডটি অনুলিপি করুন, একটি “ টেস্ট.পি ” ফাইলে পেস্ট করুন এবং টেস্ট.পাই ফাইলটিতে 755 অনুমতি সেট করুন এবং পরে < ./test.py ", এটিই আপনি পাবেন।

# nano test.py
# chmod 755 test.py
# ./test.py

বোতামটি ক্লিক করে আপনি টার্মিনালে মুদ্রিত " হ্যালো, ওয়ার্ল্ড " বাক্যটি দেখতে পাবেন:

আমাকে কোডটি বিশদ ব্যাখ্যায় ব্যাখ্যা করতে দিন।

  1. #!/usr/bin/পাইথন : পাইথন ইন্টারপ্রেটারের ডিফল্ট পাথ (বেশিরভাগ ক্ষেত্রে সংস্করণ ২.7), এই লাইনটি অবশ্যই প্রতিটি পাইথন ফাইলের প্রথম লাইন হতে হবে
  2. # - * - কোডিং: utf-8 - * - : এখানে আমরা ফাইলটির জন্য ডিফল্ট কোডিং সেট করেছি, ইউটিএফ -8 সেরা যদি আপনি অ-ইংরাজী ভাষা সমর্থন করতে চান তবে ছেড়ে দিন এটি এর মতো।
  3. gi.repository আমদানি Gtk থেকে: এখানে আমরা আমাদের প্রোগ্রামে এটি ব্যবহার করতে জিটিকে 3 লাইব্রেরি আমদানি করছি
  4. ক্লাস উইন্ডো (Gtk.Window): এখানে আমরা একটি নতুন ক্লাস তৈরি করছি, যাকে "উইন্ডো" বলা হয়, আমরা ক্লাস অবজেক্ট টাইপটিকে একটি "Gtk.Window" এও সেট করছি
  5. Def __init __ (স্ব) : নতুন কিছু নয়, আমরা এখানে মূল উইন্ডো উপাদানগুলি সংজ্ঞায়িত করছি
  6. Gtk.Window .__ init __ (স্ব, শিরোনাম = "আমার হ্যালো ওয়ার্ল্ড প্রোগ্রাম") : আমরা "আমার হ্যালো ওয়ার্ল্ড প্রোগ্রাম" শিরোনামটিকে "উইন্ডো" উইন্ডোতে সেট করতে এই লাইনটি ব্যবহার করছি, আপনি চাইলে শিরোনাম পরিবর্তন করতে পারেন
  7. Gtk.Window.set_default_size (স্ব, 400,325) : আমি মনে করি না যে এই রেখার ব্যাখ্যা দরকার, এখানে আমরা আমাদের উইন্ডোর জন্য ডিফল্ট প্রস্থ এবং উচ্চতা নির্ধারণ করছি
  8. Gtk.Window.set_position (স্ব, Gtk.WindowPosition.CENTER) : এই লাইনটি ব্যবহার করে আমরা উইন্ডোটির জন্য ডিফল্ট অবস্থান নির্ধারণ করতে সক্ষম হব, এই ক্ষেত্রে, আমরা এটি সেট করব "Gtk.WindowPosition.CENTER" পরামিতি ব্যবহার করে কেন্দ্রে আপনি যদি চান, আপনি মাউস পয়েন্টার অবস্থানে উইন্ডোটি খুলতে "Gtk.WindowPosition.MOUSE" এ পরিবর্তন করতে পারেন
  9. বাটন 1 = গিটক.বাটন ("হ্যালো, ওয়ার্ল্ড!") : আমরা একটি নতুন Gtk.Button তৈরি করেছি এবং আমরা এটিকে "বাটন 1" বলেছি, বোতামটির ডিফল্ট পাঠ্যটি হ্যালো, ওয়ার্ল্ড! ”, আপনি চাইলে যে কোনও জিটিকে উইজেট তৈরি করতে পারেন
  10. বাটন 1 কনকনেক্ট ("ক্লিক করা", স্বা। বোতামবোন 1_ ক্লিক করা হয়েছে) : এখানে আমরা "ক্লিক করা" সিগন্যালটিকে "যখনবটটন 1_ক্লিকড" ক্রিয়াটির সাথে সংযুক্ত করছি, যাতে বোতামটি ক্লিক করা হলে, " whenbutton1_clked "ক্রিয়াটি সক্রিয় করা আছে
  11. স্ব.এডড (বোতাম 1) : আমরা যদি আমাদের জিটিকে উইজেটগুলি উপস্থিত হতে চাই তবে আমাদের সেগুলি ডিফল্ট উইন্ডোতে যুক্ত করতে হবে, এই সাধারণ লাইনটি উইন্ডোতে "বাটন 1" উইজেট যুক্ত করে, এটি এটি করার জন্য খুব প্রয়োজনীয়
  12. Def whenbutton1_clked (স্ব, বোতাম) : এখন আমরা এখানে "যখনবটন 1_ ক্লিক" ক্রিয়াটি সংজ্ঞায়িত করছি, আমরা যখন "বাটন 1" উইজেটটি ক্লিক করা হবে তখন কী ঘটবে তা সংজ্ঞায়িত করছি, "( স্ব, বোতাম) "সিগন্যাল প্যারেন্ট অবজেক্টের ধরণের নির্দিষ্ট করতে পরামিতি গুরুত্বপূর্ণ।
  13. "হ্যালো, ওয়ার্ল্ড!" মুদ্রণ করুন: আমাকে এখানে আরও ব্যাখ্যা করতে হবে না li
  14. উইন্ডো = আমাদের উইন্ডো() : আমাদের একটি নতুন গ্লোবাল ভেরিয়েবল তৈরি করতে হবে এবং এটি আমাদের উইন্ডো() শ্রেণিতে সেট করতে হবে যাতে আমরা পরে এটি জিটিকে + লাইব্রেরি ব্যবহার করে কল করতে পারি
  15. উইন্ডো কোডনেক্ট ("মুছে ফেলুন ইভেন্ট", Gtk.main_quit) : এখন আমরা "Gtk.main_quit" ক্রিয়াকলাপের সাথে "মুছুন-ইভেন্ট" সংকেত সংযুক্ত করছি, এতে গুরুত্বপূর্ণ আমরা আমাদের প্রোগ্রাম উইন্ডোটি স্বয়ংক্রিয়ভাবে বন্ধ করার পরে সমস্ত উইজেটগুলি মুছে ফেলার আদেশ দিন
  16. উইন্ডো.শো_ সব() : উইন্ডো দেখাচ্ছে।
  17. li
  18. Gtk.main() : Gtk লাইব্রেরি চলছে

এটাই কি, সহজ না? এবং খুব কার্যকর যদি আমরা কিছু বড় অ্যাপ্লিকেশন তৈরি করতে চাই। কোড-একমাত্র উপায়ে জিটিকে + ইন্টারফেস তৈরির বিষয়ে আরও তথ্যের জন্য, আপনি এখানে অফিসিয়াল ডকুমেন্টেশন ওয়েবসাইটটি দেখতে পারেন:

পাইথন জিটিকে 3 টি টিউটোরিয়াল

আমি যেমন নিবন্ধের শুরুতে বলেছিলাম, গ্ল্যাড আমাদের প্রোগ্রামগুলির জন্য আমাদের প্রয়োজনীয় ইন্টারফেসগুলি তৈরি করার একটি খুব সহজ সরঞ্জাম, এটি বিকাশকারীদের মধ্যে খুব বিখ্যাত এবং এটি ব্যবহার করে অনেক দুর্দান্ত অ্যাপ্লিকেশন ইন্টারফেস তৈরি করা হয়েছিল। এই উপায়টিকে বলা হয় "দ্রুত অ্যাপ্লিকেশন বিকাশ"।

এটি ব্যবহার শুরু করার জন্য আপনাকে গ্ল্যাড ইনস্টল করতে হবে, ডেবিয়ান/উবুন্টু/মিন্ট চালাতে:

$ sudo apt­-get install glade

রেডহ্যাট/ফেডোরা/সেন্টস-এ, চালান:

# yum install glade

আপনি প্রোগ্রামটি ডাউনলোড এবং ইনস্টল করার পরে এবং এটি চালানোর পরে, আপনি বামদিকে উপলব্ধ জিটিকে উইজেটগুলি দেখতে পাবেন, একটি নতুন উইন্ডো তৈরি করতে " উইন্ডো " উইজেটে ক্লিক করুন।

আপনি লক্ষ্য করবেন যে একটি নতুন খালি উইন্ডো তৈরি হয়েছে।

আপনি এখন এতে কিছু উইজেট যুক্ত করতে পারেন, বাম সরঞ্জামদণ্ডে, " বোতাম " উইজেটে ক্লিক করুন এবং উইন্ডোতে বোতামটি যুক্ত করতে খালি উইন্ডোতে ক্লিক করুন।

আপনি দেখতে পাবেন যে বোতামের আইডি " বাটন 1 ", এখনই ডান টুলবারের সিগন্যাল ট্যাবটি দেখুন এবং " ক্লিক " সিগন্যালটি অনুসন্ধান করুন এবং "<বি > এর অধীনে বাটন 1_ ক্লিক করা "।

এখন আমরা আমাদের জিইউআই তৈরি করেছি, আসুন এটি রফতানি করি। “ ফাইল ” মেনুতে ক্লিক করুন এবং “ সংরক্ষণ করুন ” চয়ন করুন, আপনার হোম ডিরেক্টরিতে ফাইলটি <<< myprogram.glade "নামে সংরক্ষণ করুন এবং প্রস্থান

এখন, একটি নতুন " টেস্ট.পি " ফাইল তৈরি করুন এবং এর মধ্যে নিম্নলিখিত কোডটি প্রবেশ করুন।

#!/usr/bin/python
# -*- coding: utf-8 -*-

from gi.repository import Gtk

class Handler:
    def button_1clicked(self, button):
      print "Hello, World!"

builder = Gtk.Builder()
builder.add_from_file("myprogram.glade")
builder.connect_signals(Handler())

ournewbutton = builder.get_object("button1")
ournewbutton.set_label("Hello, World!")

window = builder.get_object("window1")

window.connect("delete-event", Gtk.main_quit)
window.show_all()
Gtk.main()

ফাইলটি সংরক্ষণ করুন, আগের মতো 755 টি অনুমতি দিন এবং এটি " ./test.py " ব্যবহার করে চালান, এবং এটিই আপনি পাবেন।

# nano test.py
# chmod 755 test.py
# ./test.py

বোতামটি ক্লিক করুন এবং আপনি লক্ষ্য করবেন যে টার্মিনালে " হ্যালো, ওয়ার্ল্ড " বাক্যটি মুদ্রিত হয়েছে।

এবার নতুন বিষয়গুলি ব্যাখ্যা করা যাক:

  1. ক্লাস হ্যান্ডলার : এখানে আমরা "হ্যান্ডলার" নামে একটি শ্রেণি তৈরি করছি যা ক্রিয়াকলাপ এবং সংকেতগুলির সংজ্ঞা অন্তর্ভুক্ত করবে, আমরা জিইউআইয়ের জন্য তৈরি করব
  2. builder = Gtk.Builder() : আমরা "বিল্ডার" নামে একটি নতুন গ্লোবাল ভেরিয়েবল তৈরি করেছি যা একটি Gtk.Builder উইজেট, .glade ফাইলটি আমদানি করার জন্য এটি গুরুত্বপূর্ণ < li>
  3. builder.add_from_file ("myprogram.glade") : এখানে আমরা আমাদের প্রোগ্রামের জন্য ডিফল্ট জিইউআই হিসাবে এটি ব্যবহার করতে "মাইপোগ্রাম.glade" ফাইলটি আমদানি করছি
  4. builder.connect_signals (Handler()) : এই লাইনটি হ্যান্ডলার শ্রেণীর সাথে .glade ফাইলটিকে সংযুক্ত করে, যাতে আমরা যখন "হ্যান্ডলার" শ্রেণির অধীনে সংজ্ঞাটি প্রয়োগ করি এবং সংকেতগুলি সূক্ষ্মভাবে কাজ করে তখন আমরা ভাল প্রোগ্রামটি চালান।
  5. ournewbutton = builder.get_object ("বাটন 1") : এখন আমরা .glade ফাইল থেকে "বাটন 1" অবজেক্টটি আমদানি করছি, আমরা এটিকে বিশ্বব্যাপী ভেরিয়েবল "আমাদের নিউউবটন" এও দিচ্ছি আমাদের প্রোগ্রামে এটি পরে ব্যবহার করতে।
  6. ournewbutton.set_label ("হ্যালো, ওয়ার্ল্ড!") : আমরা "হ্যালো, ওয়ার্ল্ড!" এ ডিফল্ট বোতামের পাঠ্য সেট করতে "সেট.লাবেল" পদ্ধতিটি ব্যবহার করেছি! বাক্য।
  7. উইন্ডো = builder.get_object ("উইন্ডোজ 1") : এখানে আমরা প্রোগ্রামটিতে পরে প্রদর্শন করার জন্য .glade ফাইল থেকে "উইন্ডোজ 1" অবজেক্টটি কল করেছি

এবং এটাই! আপনি সফলভাবে লিনাক্সের অধীনে আপনার প্রথম প্রোগ্রাম তৈরি করেছেন!

সত্যিকারের অ্যাপ্লিকেশন তৈরি করার জন্য অবশ্যই আরও অনেক জটিল কাজ করার দরকার রয়েছে যা এই কারণেই আমি আপনাকে জিটিকে + ডকুমেন্টেশন এবং জিওজেক্ট এপিআই এ একবার দেখার জন্য সুপারিশ করছি:

  1. জিটিকে + রেফারেন্স ম্যানুয়াল
  2. পাইথন GObject এপিআই রেফারেন্স
  3. পাইগিজোবজেক্ট রেফারেন্স

আপনি কি লিনাক্স ডেস্কটপের অধীনে কোনও অ্যাপ্লিকেশন বিকাশ করেছেন? কোন প্রোগ্রামিং ভাষা এবং সরঞ্জামগুলি এটি করতে ব্যবহার করেছে? পাইথন এবং জিটিকে 3 ব্যবহার করে অ্যাপ্লিকেশন তৈরি করার বিষয়ে আপনি কী ভাবেন?