2015-02-21 4 views
8

मैंने पाइथन स्क्रिप्ट्स में कॉल फ़ंक्शन देखा है, जिसे tk.call() कहा जाता है, लेकिन मुझे इसका अर्थ समझ में नहीं आता है। इससे संबंधित कोई दस्तावेज भी नहीं है।पायथन/टिंकर में "tk.call" फ़ंक्शन क्या करता है?

क्या कोई भी call() फ़ंक्शन की कार्यक्षमता के बारे में बता सकता है।

यह एक सरल उदाहरण है:

p.tk.call(p, 'put', color, '-to', 0, 0, p['width'], p['height']) 

इस समारोह है, जहां pPhotoImage विजेट है की कार्यक्षमता।

उत्तर

9

टिंकर शुद्ध पायथन नहीं है। अंतर्निहित यह एक जीवित टीसीएल दुभाषिया है जिसे दुभाषिया में लोड "टीके" नामक एक्सटेंशन के साथ किया जाता है। अधिकांश टिंकर कमांड, विधियों और ऑब्जेक्ट्स अंततः टीसीएल कमांड के आविष्कार के रूप में उभरते हैं। इस तरह

root = tk.Tk() 
f = tk.Frame(root) 
b = tk.Button(f, text="Press me!") 

... यह कुछ (लगभग) में अनुवाद किया जाता है: उदाहरण के लिए, जब आप की तरह कुछ करना

package require tk 
frame .f 
button .f.b -text "Press me!" 

(ध्यान दें: Tkinter वास्तव में .f और .f.b तुलना में अधिक जटिल नामों उत्पन्न करता है , लेकिन अवधारणा वही है)

call विधि इस अंतर्निहित टीसीएल दुभाषिया के लिए इंटरफ़ेस है। यह आपको एक टीसीएल कमांड बनाने और दुभाषिया से इसे चलाने के लिए कहता है। यह अजगर और टीसीएल के बीच एक पुल है।

यह आमतौर पर एप्लिकेशन-स्तरीय कोड में उपयोग नहीं किया जाता है, हालांकि यह दुर्लभ मामलों में उपयोगी हो सकता है जहां टीसीएल/टीके के आसपास टिंकर रैपर टीसीएल/टीके द्वारा समर्थित कुछ फीचर तक पहुंच प्रदान नहीं करता है।

+0

बहुत अच्छा जवाब! मैं 'कॉल' विधि के उपयोग के बारे में एक और बात पूछना चाहता हूं। हम इस विधि का उपयोग करके 'tcl' आदेश (पायथन के बजाय) दे सकते हैं, लेकिन हम अभी भी विधि के माध्यम से आदेश देने (विधि और गुजरने वाले पैरामीटर को कॉल करने के पाइथन तरीके का उपयोग करते हैं)। क्या पाइथन प्रोग्रामर के लिए 'कॉल' विधि का उपयोग करने का तरीका जानने का कोई तरीका है? क्या कुछ दस्तावेज है? – nbro

+0

@Rinzler: एकमात्र दस्तावेज जो उपयोगी होगा टीसीएल/टीके दस्तावेज है। जब आप 'कॉल' कहते हैं, तो यह सचमुच सीधे तर्कों को सीधे टीसीएल कमांड में अनुवाद करता है (टीसीएल कथन केवल एक कमांड और शून्य या अधिक तर्क से बने सूचियां हैं)। http://www.tcl.tk/man –

4

Tk.call()Tkinter module से है, और इसका उपयोग tcl-आधारित आदेश सीधे Tkinter विजेट से निष्पादित करने के लिए किया जा सकता है। उदाहरण Tkinter उपयोगकर्ता के ओएस पाने के लिए आदेश:

root.tk.call('tk', 'windowingsystem') 

कहाँ windowingsystem tcl से एक विशेषता है।

जहां तक ​​मुझे पता है कि tk.call() के लिए कोई आधिकारिक दस्तावेज नहीं है।

+0

उत्तर के लिए बहुत बहुत धन्यवाद। लेकिन क्या आप इसे भी समझा सकते हैं। p.tk.call (पी, 'put', रंग, '-to', 0, 0, पी ['चौड़ाई'], पी ['ऊंचाई']) इस फ़ंक्शन की कार्यक्षमता, जहां 'p 'फोटो इमेज तत्व है। –

+0

क्षमा करें, Tkinter के उस बड़े उपयोगकर्ता को नहीं, आपकी मदद नहीं कर सकता। – Leafthecat

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