Как использовать Python tkSimpleDialog.askstring
-
18-09-2019 - |
Вопрос
Я хочу использовать ответ из запроса askstring для установки переменной.К сожалению, У меня дилемма в том, что я застрял в цикле, задавая вопрос, или окно отказывается отрисовываться, потому что переменная (urltoopen) не имеет значения.Код в его нынешнем виде:
urltoopen = tkSimpleDialog.askstring('Address', 'Where do we get the pictures from?')
usock = urllib2.urlopen(urltoopen)
data = usock.read()
usock.close()
Решение
tkSimpleDialog.askstring ВОЗВРАТ None
если пользователь нажимает кнопку Отмена или закрывает окно (вместо нажатия кнопки Ок или использования клавиши Enter);вы должны проверить это (что вы хотите сделать, если пользователь решит отменить?конечно, не звонить urlopen
во всяком случае...).
Кроме того, вы правильно используете функцию;Я полагаю, что под "не имеет ценности" вы подразумеваете is None
, верно?
Другие советы
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()
работает нормально.Но это действительно требует обработки ошибок (как упоминал Алекс).