如何使用Python tkSimpleDialog.askstring

3 投票
2 回答
13589 浏览
提问于 2025-04-15 17:38

我想用askstring提示框的回答来设置一个变量。不过,我遇到了一个问题:我被困在一个循环里,不停地问这个问题,或者窗口不显示,因为这个变量(urltoopen)没有值。现在的代码是这样的:

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

2 个回答

0

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()    

运行得很好。不过确实需要处理错误(正如Alex提到的)。

4

tkSimpleDialog.askstring 这个函数在用户点击“取消”或者关闭窗口时,会返回 None(而不是点击“确定”或者按回车键)。所以你需要检查这个情况(如果用户选择取消,你想怎么处理呢?肯定不能继续调用 urlopen 吧……)。

除此之外,你使用这个函数的方法是对的;我想你说的“没有值”是指 is None,对吧?

撰写回答