Как использовать Python tkSimpleDialog.askstring - PullRequest
3 голосов
/ 05 января 2010

Я хочу использовать ответ из запроса askstring, чтобы установить переменную. К несчастью, У меня есть дилемма, что я пойман в ловушку в цикле, задающем вопрос, или окно отказывается рисовать, потому что переменная (urltoopen) не имеет значения. Код в таком виде:

urltoopen = tkSimpleDialog.askstring('Address', 'Where do we get the pictures from?')
usock = urllib2.urlopen(urltoopen)
data = usock.read()    
usock.close()                     

Ответы [ 2 ]

3 голосов
/ 05 января 2010

tkSimpleDialog.askstring возвращает None, если пользователь нажимает кнопку Отмена или закрывает окно (вместо нажатия кнопки «ОК» или использования клавиши «Ввод»); Вы должны проверить это (что вы хотите сделать, если пользователь решит отменить? Конечно, не звоните urlopen в любом случае ...).

Кроме того, вы используете функцию правильно; Я полагаю, что под "не имеет значения" вы подразумеваете is None, верно?

0 голосов
/ 09 января 2010

root = Tk()   


try:
        urltoopen = tkSimpleDialog.askstring('Ask Address', 'Where do we get the pictures from?')
        usock = urllib2.urlopen(urltoopen)                                                       
        data = usock.read()                                                                      
        usock.close()                                                                            
        a = data                                                                                 
except:                                                                                          
        sys.exit()    

отлично работает. Но для этого нужна обработка ошибок (как упомянул Алекс).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...