Tkinter Python का 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)
# क्लास चर
self.MainWindow = MainWindow
self._expanded_text = expanded_text
self._collapsed_text = collapsed_text
# Weight=1 ताकि आवश्यकतानुसार आकार बढ़े
self.columnconfigure(1, weight=1)
self._variable = tk.IntVar()
# चेकबटन बनाना
self._button = ttk.Checkbutton(self, variable=self._variable,
command=self._activate, style="TButton")
self._button.grid(row=0, column=0)
# एक क्षैतिज रेखा बनाएं
self._separator = ttk.Separator(self, orient="horizontal")
self._separator.grid(row=0, column=1, sticky="we")
self.frame = ttk.Frame(self)
# क्लास को सक्रिय करें
self._activate()
def _activate(self):
if not self._variable.get():
# बटन दबाए जाने पर इस विजेट को हटाएं।
self.frame.grid_forget()
# संकुचित टेक्स्ट दिखाएं
self._button.configure(text=self._collapsed_text)
elif self._variable.get():
# आवश्यकतानुसार फ्रेम क्षेत्र बढ़ाएं
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()
# रूट विंडो या MainWindow बनाना
root = Tk()
root.geometry('300x300')
# संकुचनशील फलक कंटेनर का ऑब्जेक्ट बनाना
cpane_obj = cpane(root, 'Close Me', 'Open Me!')
cpane_obj.grid(row=0, column=0)
# संकुचनशील फलक में दिखने वाले बटन
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()
आउटपुट
उपरोक्त कोड चलाने पर हमें निम्न परिणाम मिलता है -

