2015-10-25 5 views
5

मैं कुछ GUIs हाल ही में लगाते आ रहे हैं और बटन के बजाय नरम देखा पाया तो मैं टीटीके बेहतर दिखेगा का उपयोग कर बनाने पर कुछ ट्यूटोरियल पढ़ सकते हैं और निम्नलिखित है:विभिन्न प्रकार के टीटीके शैलियों कितने/उपलब्ध हैं?

from tkinter import ttk 
from tkinter.ttk import * 

root = tkinter.Tk() 

style = ttk.Style() 
style.configure("BW.TLabel") 

btn = ttk.Button(text="Test") 
btn.pack() 

root.mainloop() 

हाँ, यह बेहतर लग रहा है, लेकिन मैं सोच रहा था कि अगर अलग-अलग टीटीके शैलियों हैं और यदि हां, तो कितने हैं और उनके लिए कहां जांचें

उत्तर

1

टीटीके के लिए शैलियों में निर्मित कई नहीं हैं, मुझे विश्वास है कि यह प्रति प्रकार की एकमात्र शैली है। क्या टीटीके आपको करने की अनुमति देता है जो कि अपनी खुद की शैलियों को परिभाषित करता है जो कि बिल्टिन से व्युत्पन्न होते हैं, जो बिट्स आप अलग करना चाहते हैं उन्हें ट्विक करें और फिर उस शैली को सभी विजेटों पर आसानी से लागू करें।

This देखने के लिए एक अच्छा संदर्भ है। लेकिन कहते हैं कि उदाहरण के लिए आप सभी टीटीके बटन को बदलना चाहते हैं तो वे आप निम्नलिखित करना होगा एक लाल फ़ॉन्ट इस्तेमाल किया:

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

root = tk.Tk() 

style = ttk.Style() 
style.configure("TButton", foreground="red") 

btn = ttk.Button(text="Test") 
btn.pack() 

root.mainloop() 

तो हर टीटीके बटन एक लाल अग्रभूमि के साथ स्टाइल की जाएगी।

एक नई शैली आप इस करना होगा बनाने के लिए:

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

root = tk.Tk() 

style = ttk.Style() 
style.configure("Mine.TButton", foreground="red") 

btn = ttk.Button(text="Test") 
btn.pack() 
btn2 = ttk.Button(text="Test", style="Mine.TButton") 
btn2.pack() 

root.mainloop() 

तो पहला बटन डिफ़ॉल्ट बटन शैली का उपयोग करता है, लेकिन मैं एक नया बटन शैली Mine.TButton बुलाया पाने हूँ (.TButton मतलब है कि यह प्रतियां टीबटन की मौजूदा शैली और उसके बाद कॉन्फ़िगर कॉल में निर्दिष्ट किए गए परिवर्तनों को बदलता है)

इसलिए उस शैली के साथ बनाए गए किसी भी बटन को वही दिखाई देगा।

2

सबसे पहले, कुछ शब्दावली। टीटीके रुपये के लिए एक थीमिंग परत है। इसमें विषयों का एक संग्रह शामिल है जो शैलियों से बने होते हैं जो विजेट पर लागू होते हैं। शैलियों एक या अधिक तत्व इंजन द्वारा प्रदान किए गए तत्वों से बना है।

थीमिंग परत का उद्देश्य प्रोग्रामर को सभी प्रकार के भयानक दिखने वाले कस्टम विजेट बनाने की अनुमति देने के बजाय उपयोगकर्ताओं के डेस्कटॉप के मूल रूप और अनुभव में बेहतर फिट करना था। यह पहले से ही हासिल किया गया है।

तो विंडोज़ पर डिफ़ॉल्ट थीम वह है जो विजुअल स्टाइल एपीआई का उपयोग कर सकती है। उस चीज को थकाता है जो बटन किनारों और पृष्ठभूमि को खींचता है और इसी तरह विंडोज एक्सपी और ऊपर। चूंकि यह बनाया गया था जब विंडोज के पुराने संस्करणों का समर्थन किया गया था, हमारे पास एक थीम भी है जो जीडीआई ड्राइंग तत्वों (विजेता) का समर्थन करती है। मैकोज़ पर चलने के लिए एक तत्व इंजन है जो देशी थीमिंग का उपयोग करता है और एक्स 11 पर हमें कुछ ऐसा दिखने के लिए टैंक ड्राइंग का उपयोग करना पड़ता है जो ठीक दिखता है। जीटीके + और क्यूटी थीमिंग एपीआई में टीटीके हुक रखने का प्रयास वास्तव में बंद नहीं हुआ है।

तो आपके लिए उपलब्ध थीम आपके प्लेटफ़ॉर्म पर निर्भर करती हैं। विभिन्न विषयों कॉन्फ़िगरेशन की विभिन्न मात्रा प्रदान करते हैं। बाहरी एपीआई (बनापी, विजेता या एक्वा) द्वारा प्रदान किए गए तत्वों का उपयोग करने वाले वास्तव में आपको अधिक अनुकूलित करने की अनुमति नहीं देते हैं। हालांकि, थीम डिफ़ॉल्ट (टैक्ड) तत्व इंजन से तत्व आयात कर सकते हैं या दृश्य तत्वों के रूप में images का उपयोग कर सकते हैं। छवि तत्व इंजन आपको शैलियों के पूरे संग्रह (और इस प्रकार सभी विगेट्स की उपस्थिति) को पूरी तरह से बदलने की अनुमति देता है यदि आप वास्तव में चाहते हैं। हालांकि इसकी बजाय धीमी है।

आम तौर पर, बिंदु डेवलपर्स पर काम को कम करने के लिए अनुप्रयोगों को मूल बनाने और अंतिम अनुकूलन की अनुमति देने के लिए नहीं था।

विषयों उपलब्ध ढूंढने के लिए:

>>> ttk.Style().theme_names() 
('clam', 'alt', 'default', 'classic') 

यह लिनक्स पर था। विंडोज 7 पर भी विजेता, xpnative और विस्टा होगा। प्रारंभिक थीम को रनटाइम पर प्लेटफ़ॉर्म के आधार पर चुना जाता है जब तक कि एप्लिकेशन वैकल्पिक थीम का चयन न करे।

शैलियों विषय के भीतर परिभाषित सभी विजेट से जुड़े हुए हैं। सभी शैलियों की गणना करने के लिए कोई विधि उपलब्ध नहीं है। आप संभवतः सभी टीटीके विजेटों पर फिर से सक्रिय हो सकते हैं और उनके winfo_class() विधि परिणामों को देख सकते हैं क्योंकि उस विजेट द्वारा उपयोग की जाने वाली थीम शैली दिखाती है।

संबंधित मुद्दे