2012-04-18 12 views
8

मैं Rosetta Code पर एक पायथन कोड उदाहरण का प्रयास कर रहा था - programming chrestomathy साइट, जहां एक ही कार्य के समाधान संभवतः कई अलग-अलग प्रोग्रामिंग भाषाओं में प्रस्तुत किए जाते हैं। इस कार्य के लिए, लक्ष्य ग्राफ़िकल यूजर इंटरफेस से एक स्ट्रिंग और पूर्णांक 75000 इनपुट करना है।न्यूनतम tkSimpleDialog उदाहरण में त्रुटि

import tkSimpleDialog 

number = tkSimpleDialog.askinteger("Integer", "Enter a Number") 
string = tkSimpleDialog.askstring("String", "Enter a String") 

हालांकि, जब मैं कोड को चलाने के लिए प्रयास करते हैं, मैं निम्नलिखित त्रुटि हो:

Traceback (most recent call last): 
    File "C:\Users\vix\Documents\.cache\GUIexample.py", line 3, in <module> 
    number = tkSimpleDialog.askinteger("Integer", "Enter a Number") 
    File "C:\Python27\lib\lib-tk\tkSimpleDialog.py", line 262, in askinteger 
    d = _QueryInteger(title, prompt, **kw) 
    File "C:\Python27\lib\lib-tk\tkSimpleDialog.py", line 189, in __init__ 
    Dialog.__init__(self, parent, title) 
    File "C:\Python27\lib\lib-tk\tkSimpleDialog.py", line 53, in __init__ 
    if parent.winfo_viewable(): 
AttributeError: 'NoneType' object has no attribute 'winfo_viewable' 

कहाँ समस्या हो सकती है कोड नीचे दिखाया गया है?

धन्यवाद

+0

पोस्ट पूर्ण ट्रैस बैक, न सिर्फ त्रुटि। हमें उस कोड को देखने की आवश्यकता है जिसमें त्रुटि है। – agf

+0

@agf मैंने ट्रेसबैक को शामिल करने के लिए प्रश्न संपादित किया है। – engineervix

+0

मैं अजगर 2.7 का उपयोग कर रहा विंडोज 7 अंतिम 32-बिट पर। 'root = Tkinter.tk()' काम नहीं करता है, यह 'NameError देता है: नाम' Tkinter 'परिभाषित नहीं किया गया है' – engineervix

उत्तर

12

त्रुटि संदेश जो आपको बताएगा कि डायलॉग का एक पैरेंट खिड़की की जरूरत है।

पायथन 2.x के साथ

, आप के साथ रूट विंडो बनाने:

import Tkinter 
root = Tkinter.Tk() 

जड़ खिड़की को छुपाने के लिए, यदि आप इसे नहीं करना चाहते, उपयोग:

root.withdraw() 

Python Tkinter Docs के लिए देखें और जानकारी।

+0

* टीके के बजाय टी * के ... सही जवाब से रास्ता। – FabienAndre

+0

@FabienAndre धन्यवाद, तय है। – agf

1

मैं askinteger का उपयोग किया है कभी नहीं, लेकिन त्रुटि संदेश यह लग रहा है संवाद अपनी मूल पता करने की जरूरत है की तरह से पहचानने लेकिन आप इसे कह नहीं कर रहे हैं क्या अपनी मूल होना चाहिए। जोड़ने parent=widget (- आम तौर पर जड़ विजेट जहां "विजेट" कुछ अन्य विजेट के लिए एक संदर्भ है) की कोशिश करो। मुझे कोई दस्तावेज नहीं मिल रहा है जो कहता है कि यह आवश्यक है, लेकिन मुझे लगता है कि यह रूट विंडो को छोड़कर सभी टिंकर विजेट्स को माता-पिता होने की आवश्यकता है।

कोड आप अपने प्रश्न में दिखाने के पूरा कोड है, तो आप कुछ अन्य बातों के खो रहे हैं। आप Tk वर्ग ("रूट" खिड़की कहा जाता है) का एक उदाहरण बनाने की जरूरत है, और आप घटना पाश (हालांकि, यह संवाद यह खुद घटना पाश है चलाता है कि संभव है शुरू करने की आवश्यकता है, तो आप ठीक हैं अगर आप सभी की जरूरत हो सकती है एक ही संवाद है)।

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