2010-10-21 5 views
7

पायथन 2.7 (32-बिट) विंडोज़: हम सरल जीयूआई के लिए थीम्ड टिंकर (ttk) के लिए पायथन 2.7 के समर्थन के साथ प्रयोग कर रहे हैं और बहुत प्रभावित हुए हैं !! एक ऐसा क्षेत्र जहां नया थीम समर्थन कम हो गया है, यह है कि कैसे ओएस विशिष्ट आम संवाद लपेटे जाते हैं।पायथन 2.7: टीएमके के माध्यम से थीम्ड "आम संवाद" tkinter इंटरफेस?

सही किया: दूसरे शब्दों में, MessageBox और ColorChooser आम संवाद "बदसूरत" देख विन 95 शैली ब्लॉक वाले की तलाश में बटन बनाम थीम पर आधारित (गोल/ढाल) बटन है कि सामान्य रूप XP, विस्टा के तहत इन आम संवाद पर दिखाई दें, राशि और विंडोज 7. (मैं समान, अन-थीम वाले परिणामों के साथ सभी 3 प्लेटफार्मों पर परीक्षण कर रहा हूं)।

नोट: FileDialog आम संवाद (askopenfilename, askopenfilenames, asksaveasfilename, askdirectory) सभी ठीक से थीम्ड हैं।

import tkMessageBox as messagebox 
messagebox.showinfo() 

import tkColorChooser as colorchooser 
color = colorchooser.askcolor(parent=root, title='Customize colors') 

(कम से कम Windows XP के तहत या अधिक) क्या Tkinter के MessageBox और ColorChooser आम संवाद संगत ओएस विषय होने के लिए प्राप्त करने के लिए आवश्यक है पर कोई भी विचार?

+0

यह एक महान पकड़ है। मैं इसे पाइथन में बग ट्रैकर में लाने जा रहा हूं और देख सकता हूं कि हम कुछ रास्ता बना सकते हैं या नहीं। –

+0

राफे: इस समस्या के साथ पाइथन बग ट्रैकर को अपडेट करने के लिए धन्यवाद। मैं इस समस्या को ठीक करने में मदद करने के लिए खुश हूं। मुझे यकीन नहीं है कि मैं कोड के अनुसार योगदान कर सकता हूं, लेकिन मुझे विंडोज के कई संस्करणों पर किसी भी कोड फिक्स का परीक्षण करने में खुशी होगी, उदाहरण के लिए। एक्सपी, विस्टा, विंडोज 7. – Malcolm

+0

यहां इस मुद्दे का एक लिंक है, आप हमेशा स्रोत को देख सकते हैं और देख सकते हैं कि स्रोत को सही करने का कोई तरीका है या नहीं। जिस तरह से चीजें काम करती हैं, जबकि आप एकतरफा कोड नहीं कर सकते हैं, कोई भी पैच लिख सकता है और उन्हें देख सकता है। http://bugs.python.org/issue10171 –

उत्तर

2

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

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

मुझे नहीं लगता कि आप colorchooser समस्या के समाधान के साथ एक साथ हैक कर सकते हैं।

हालांकि मैं एक मिनट के लिए शायद पाइथन 3.1 ने इस समस्या को ठीक कर दिया था, लेकिन दुख की बात है, मैंने कोशिश की और ऐसा नहीं है। मुझे लगता है कि यदि आपको रंग चुनने के लिए उपयोगकर्ता की आवश्यकता है, तो बटन बदसूरत होंगे।

+0

राफे: हाँ, आप सही हैं ... दायर (गोलाकार) बटन के समर्थन के साथ दायर किए गए दायर डीओ प्रस्तुत करते हैं। थीम समर्थन की कमी संदेशबॉक्स और colorchooser संवाद तक सीमित प्रतीत होती है। – Malcolm

+0

मैंने निम्न विषमता को भी देखा है: सभी दायरियल (और रंगीनोज़र) पैरेंट विंडो के ऊपरी बाएं कोने के सापेक्ष प्रदर्शित होते हैं ... askdirectory() संवाद से बाहर जो डेस्कटॉप पर स्वयं केंद्रित होता है। – Malcolm

+0

@ मैल्कम: यह बहुत अजीब है। मुझे नहीं लगता कि मैं कभी भी स्वतंत्र रूप से नोटिस करूंगा। –

0

बेहतर दिखने वाले संवाद बॉक्स प्राप्त करने का विकल्प pyinstaller का उपयोग करके निष्पादन योग्य को अपनी स्क्रिप्ट को संकलित करना है। मैं इसे और अधिक थोरोली here समझाता हूं।

tl; डॉ, ऐसा लगता है कि pyinstaller के साथ संकलित करने से आप वर्तमान में चल रहे ओएस की शैली के साथ संवाद बॉक्स प्राप्त कर सकते हैं, लेकिन कस्टम शैलियों नहीं।

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