কম্পিউটার টিউটোরিয়াল

পাইথন Tkinter-এ কল্যাপসিবল পেন (Collapsible Pane) তৈরি করা

Tkinter হল পাইথনের GUI বিল্ডিং লাইব্রেরি। এই আর্টিকেলে আমরা দেখব কিভাবে একটি কল্যাপসিবল পেন তৈরি করা যায়। এটি ব্যবহারী হয় যখন GUI ক্যানভাসে বড় পরিমাণ ডেটা দেখাতে হয় কিন্তু সবসময় দেখাতে চাই না। এটি কল্যাপসিবল করা হয়েছে যাতে প্রয়োজন অনুযায়ী প্রসারিত বা সংকুচিত করা যায়।

নিচের প্রোগ্রামটি কল্যাপসিবল পেন তৈরি করে যেখানে অ্যারো প্রসারিত এবং সংকুচিত করার ফলাফল দেখা যাচ্ছে। কোডের কমেন্টগুলো প্রতিটি ধাপে কী অপর্য젝্ট নেওয়া হয়েছে তা নির্দেশ করে।

উদাহরণ

from tkinter import *
import tkinter as tk
from tkinter import ttk
from tkinter.ttk import *

class cpane(ttk.Frame):
    def __init__(self, MainWindow, expanded_text, collapsed_text):
        ttk.Frame.__init__(self, MainWindow)
        # The class variable
        self.MainWindow = MainWindow
        self._expanded_text = expanded_text
        self._collapsed_text = collapsed_text
        # Weight=1 to grow it's size as needed
        self.columnconfigure(1, weight=1)
        self._variable = tk.IntVar()
        # Creating Checkbutton
        self._button = ttk.Checkbutton(self, variable=self._variable,
            command=self._activate, style="TButton")
        self._button.grid(row=0, column=0)
        # Create a Horizontal line
        self._separator = ttk.Separator(self, orient="horizontal")
        self._separator.grid(row=0, column=1, sticky="we")
        self.frame = ttk.Frame(self)
        # Activate the class
        self._activate()

    def _activate(self):
        if not self._variable.get():
            # Remove this widget when button pressed.
            self.frame.grid_forget()
            # Show collapsed text
            self._button.configure(text=self._collapsed_text)
        elif self._variable.get():
            # Increase the frame area as needed
            self.frame.grid(row=1, column=0, columnspan=2)
            self._button.configure(text=self._expanded_text)

    def toggle(self):
        self._variable.set(not self._variable.get())
        self._activate()

# Creating root window or MainWindow
root = Tk()
root.geometry('300x300')

# Creating Object of Collapsible Pane Container
cpane_obj = cpane(root, 'Close Me', 'Open Me!')
cpane_obj.grid(row=0, column=0)

# Buttons to appear in collapsible pane
b = Button(cpane_obj.frame, text=" Frame Expanded").grid(row=1, column=2, pady=20)
b = Checkbutton(cpane_obj.frame, text="Hi There ! How are you doing?").grid(row=3, column=4, pady=20)

mainloop()

আউটপুট

উপরোক্ত কোডটি রান করলে নিচের ফলাফল পাওয়া যায়:

পাইথন Tkinter-এ কল্যাপসিবল পেন (Collapsible Pane) তৈরি করা

পাইথন Tkinter-এ কল্যাপসিবল পেন (Collapsible Pane) তৈরি করা


  1. পাইথন টкин্টার-এ ফাংশন বাইন্ডিং

  2. পাইথনে Tkinter প্রোগ্রামিং

  3. পাইথন Tkinter-এ after মেথড

  4. পাইথনে ইনহেরিটেন্স (Inheritance)