2010-10-22 9 views
6

विंडोज के तहत पायथन 2.7: हम टिंकर के आम संवादों की स्थिति को कैसे नियंत्रित कर सकते हैं?पायथन 2.7/विंडोज़: टिंकर आम संवाद की स्थिति को कैसे नियंत्रित करें?

यहाँ हम क्या खोज की है:

  • कुछ आम संवाद हमेशा अपने माता-पिता खिड़की
  • कुछ आम संवाद हमेशा खुल उपयोगकर्ता के डेस्कटॉप पर केंद्रित के सापेक्ष खोल
  • सभी आम संवाद करने के लिए प्रकट उपेक्षा वैकल्पिक माता पिता = पैरामीटर

सवाल:

  • हम अपने मूल विंडो के सापेक्ष खोलने के लिए एक संवाद को कैसे बल दे सकते हैं?
  • हम उपयोगकर्ता के डेस्कटॉप पर केंद्रित होने के लिए एक संवाद को कैसे बल दे सकते हैं?

पृष्ठभूमि:

import tkColorChooser as colorchooser 
import tkFileDialog as filedialog 
import tkMessageBox as messagebox 

; # always open up relative to parent windows 
fileOpen = filedialog.askopenfilename() 
fileOpens = filedialog.askopenfilenames() 
fileSaveAs = filedialog.asksaveasfilename() 
color  = colorchooser.askcolor() 

; # always open up centered on desktop 
folderOpen = filedialog.askdirectory() 
messagebox.askquestion() 

धन्यवाद, मैल्कम

उत्तर

1

विंडोज messagebox आप नहीं कर सकते हैं। यह स्क्रीन के केंद्र में दिखाई देता है और यही वह है। हालांकि, फ़ाइल चयन संवाद और रंग चयनकर्ता सिस्टम संवाद होते हैं जिन्हें एक टीएस रैपर दिया गया है ताकि उपयोगकर्ता इस प्लेटफ़ॉर्म पर स्टॉक संवाद देख सकें। यदि आप - पैरेंट विकल्प सेट करते हैं तो यह लपेटा हुआ खिड़कियों के माध्यम से पारित हो जाता है और यह आपके नामित अपरिवर्तनीय पर स्वयं केंद्रित होगा।

टी में:

toplevel .t 
tk_chooseColor -parent .t

तुम कैसे बदल जाते हैं कि Tkinter में मैं कुछ अजगर अनुभव के साथ किसी के लिए छोड़ दें।

इन्हें केंद्रित करने के लिए, CHOOSECOLOR संरचना का hwndOwner सदस्य हमेशा आपके एक छोटे से अपरिवर्तनीय के लिए HWND पर सेट होता है। डेस्कटॉप के खिलाफ इसे माता-पिता को जाने के लिए आपको वहां नल पास करने की आवश्यकता होगी और रुपये आपको नहीं देगा। आप यूनिक्स संस्करण (lib/clrpick.tcl) को स्रोत कर सकते हैं और इसके बजाए दिखाएंगे लेकिन फिर यह विंडोज डेस्कटॉप पर अजीब लगेगा।

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