tkinter
स्क्रॉलिंग विजेट
खोज…
परिचय
स्क्रॉलबॉक्स को लिस्टबॉक्स, कैनवस और टेक्स्ट विजेट में जोड़ा जा सकता है। इसके अलावा, एंट्री विजेट्स को क्षैतिज रूप से स्क्रॉल किया जा सकता है। अन्य प्रकार के विजेट्स को स्क्रॉल करने में सक्षम होने के लिए, आपको उन्हें कैनवास या टेक्स्ट विजेट के अंदर रखने की आवश्यकता है।
वाक्य - विन्यास
- स्क्रोलबार = tk.Scrollbar (मूल, ** kwargs)
पैरामीटर
पैरामीटर | विवरण |
---|---|
माता-पिता | tkinter विगेट्स एक पदानुक्रम में मौजूद हैं। रूट विंडो को छोड़कर, सभी विजेट्स में एक पैरेंट होता है। कुछ ऑनलाइन ट्यूटोरियल इसे "मास्टर" कहते हैं। जब विजेट को पैक, स्थान या ग्रिड के साथ स्क्रीन पर जोड़ा जाता है, तो यह इस मूल विजेट के अंदर दिखाई देगा |
पूरबी | स्क्रॉलबार की ओरिएंटेशन, या तो "vertical" (डिफ़ॉल्ट मान) या "horizontal" |
टिप्पणियों
इन उदाहरणों से लगता है कि tkinter को import tkinter as tk
(python 3) के import Tkinter as tk
या import Tkinter as tk
(python 2) के import Tkinter as tk
।
एक पाठ स्क्रॉल के लिए एक ऊर्ध्वाधर स्क्रॉलबार कनेक्ट करना
विजेट और स्क्रॉलबार के बीच का कनेक्शन दोनों तरीकों से होता है। स्क्रॉलबार को लंबवत रूप से विस्तारित करने की आवश्यकता है ताकि उसकी विजेट के समान ऊँचाई हो।
text = tk.Text(parent)
text.pack(side="left")
scroll_y = tk.Scrollbar(parent, orient="vertical", command=text.yview)
scroll_y.pack(side="left", expand=True, fill="y")
text.configure(yscrollcommand=scroll_y.set)
एक कैनवास विजेट को क्षैतिज और लंबवत स्क्रॉल करना
सिद्धांत मूल रूप से टेक्स्ट विजेट के लिए समान है, लेकिन विजेट के चारों ओर स्क्रॉलबार लगाने के लिए Grid
लेआउट का उपयोग किया जाता है।
canvas = tk.Canvas(parent, width=150, height=150)
canvas.create_oval(10, 10, 20, 20, fill="red")
canvas.create_oval(200, 200, 220, 220, fill="blue")
canvas.grid(row=0, column=0)
scroll_x = tk.Scrollbar(parent, orient="horizontal", command=canvas.xview)
scroll_x.grid(row=1, column=0, sticky="ew")
scroll_y = tk.Scrollbar(parent, orient="vertical", command=canvas.yview)
scroll_y.grid(row=0, column=1, sticky="ns")
canvas.configure(yscrollcommand=scroll_y.set, xscrollcommand=scroll_x.set)
पाठ विजेट के विपरीत, कैनवास का स्क्रॉल करने योग्य क्षेत्र स्वचालित रूप से अपडेट नहीं किया जाता है जब इसकी सामग्री को संशोधित किया जाता है, इसलिए हमें इसे परिभाषित करने और स्क्रॉल स्क्रॉल तर्क का उपयोग करके इसे मैन्युअल रूप से अपडेट करने की scrollregion
है:
canvas.configure(scrollregion=canvas.bbox("all"))
canvas.bbox("all")
आयत के निर्देशांक को पूरे कैनवस सामग्री को फिट करते हुए लौटाता है।
विगेट्स के एक समूह को स्क्रॉल करना
जब एक विंडो में कई विजेट होते हैं, तो वे सभी दिखाई नहीं दे सकते हैं। हालाँकि, न तो कोई विंडो (Tk या Toplevel उदाहरण) और न ही कोई फ़्रेम स्क्रॉल करने योग्य है। विंडो कंटेंट को स्क्रॉल करने योग्य बनाने के लिए एक समाधान यह है कि सभी विजेट्स को एक फ़्रेम में रखा जाए और फिर, इस फ्रेम को create_window
विधि का उपयोग करके कैनवस में एम्बेड करें।
canvas = tk.Canvas(parent)
scroll_y = tk.Scrollbar(parent, orient="vertical", command=canvas.yview)
frame = tk.Frame(canvas)
# group of widgets
for i in range(20):
tk.Label(frame, text='label %i' % i).pack()
# put the frame in the canvas
canvas.create_window(0, 0, anchor='nw', window=frame)
# make sure everything is displayed before configuring the scrollregion
canvas.update_idletasks()
canvas.configure(scrollregion=canvas.bbox('all'),
yscrollcommand=scroll_y.set)
canvas.pack(fill='both', expand=True, side='left')
scroll_y.pack(fill='y', side='right')