নীচে Gtk বাইন্ডিংস (পাইগবজেক্ট) ব্যবহার করে উবুন্টু 13.04 এবং সিস্টেমের পাইথন দিয়ে পরীক্ষা করা হয়।
যদিও এখানে এক উপায় কিছুটা নোংরা এবং এর জন্য আরও তদন্ত প্রয়োজন:
সারাংশ
একটি .desktop
ফাইল যুক্ত করুন /usr/share/xsessions
আমরা এটির নাম দেবcustom
প্রশ্নযুক্ত .xsession
ব্যবহারকারীকে আপনার ফাইল যুক্ত করুন (আপনার বাচ্চারা) আমরা তাদের ব্যবহারকারীর নাম রাখবkid
গণিত ধাঁধার জন্য পাইথন জিইউআই অ্যাপ্লিকেশন তৈরি করুন এবং এটিকে চালিত করুন .xsession
, আমরা এটির নাম দেবpuzzle.py
বিস্তারিত
sudo vi /usr/share/xsessions/custom.desktop
ফাইলটিতে নিম্নলিখিতগুলি যুক্ত করুন:
[Desktop Entry]
Name=Custom
Comment=This session logs you into your managed desktop environment
Exec=/etc/X11/Xsession
X-Ubuntu-Gettext-Domain=gnome-session-3.0
ফাইলটিতে নিম্নলিখিতগুলি যুক্ত করুন:
#!/bin/bash
lightdm &
exec /home/kid/puzzle.py
ফাইলটিতে নিম্নলিখিতগুলি যুক্ত করুন:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import subprocess
import random
from gi.repository import Gtk
#----------------------------------------------------------------------
class PuzzleWindow(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="Math Puzzle", resizable=False)
super(PuzzleWindow, self).set_position(Gtk.WindowPosition.CENTER)
super(PuzzleWindow, self).maximize()
self.a_number = random.randint(1, 5)
self.b_number = random.randint(1, 5)
self.result = self.a_number + self.b_number
self.vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=5)
self.label = Gtk.Label("What is the sum of the numbers bellow?")
self.number_label = Gtk.Label("{num_a} + {num_b}".format(
num_a=self.a_number, num_b=self.b_number))
self.entry = Gtk.Entry()
self.button = Gtk.Button(label="Check answer!")
self.button.connect("clicked", self.on_button_clicked)
self.vbox.pack_start(self.label, True, True, 0)
self.vbox.pack_start(self.number_label, True, True, 0)
self.vbox.pack_start(self.entry, True, True, 0)
self.vbox.pack_start(self.button, True, True, 0)
self.add(self.vbox)
def on_button_clicked(self, widget):
if int(self.entry.get_text()) == self.result:
subprocess.call("unity &", shell=True)
else:
self.label.set_text("Wrong answer, try again.")
#----------------------------------------------------------------------
def main():
"""Application's entry point"""
win = PuzzleWindow()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()
if __name__ == "__main__":
main()
ফলাফল:
- আপনি যদি লগআউট করেন, লগইন স্ক্রিনে আপনি কাস্টম নামে একটি নতুন অধিবেশন দেখতে পাবেন।
- কাস্টম সেশনটি বাছাই করে এবং সফল লগইন করার পরে আপনি একটি ছোট পাইগিটক (পাইগোবজেক্ট ব্যবহার করে) উইন্ডো দ্বারা গণিত ধাঁধা জিজ্ঞাসা করবেন। এখানে শীর্ষস্থানীয় বার, আরম্ভকারী এবং ডিফল্ট ডেস্কটপ উইজেটগুলি থাকবে না:
- আপনি যদি সঠিকভাবে উত্তর দেন, Unক্য লোড হবে ...
যদিও এটি আরও গবেষণা প্রয়োজন তবে আমি আশা করি এটি একটি প্রাথমিক পয়েন্ট হিসাবে সহায়তা করবে।