当取消按钮被按下时输入对话框的输出 - Python

0 投票
2 回答
2463 浏览
提问于 2025-04-18 12:02

这是在 Python 里写的。我通过一个通用的 getInput('1 或 2?') 来请求用户输入,并设置了一个 while 循环,这样它会一直请求输入,直到用户输入 1 或 2。我想在用户点击 取消 按钮时 停止 循环,但我不知道返回的是什么结果,所以无法把它放进我的条件判断里。我该如何引用用户选择取消按钮的输入呢?

input = False
while input == False:
    answer = getInput('1 or 2')
    if answer == '1':
        do this
        input = True
    elif answer == '2':
        do this
        input = True
    elif answer == False:  #Don't know what to put here to reference the input of
        input = True       #clicking the Cancel button to exit the input...
    else:
        getWarningReply('Invalid answer. Please enter 1 or 2.', 'OK')
        pass

getInput 不是我自己定义的函数。我只需输入 getInput('随便什么'),它就会弹出一个对话框,里面有 '确定' 和 '取消' 按钮,以及一个供用户输入的地方。这和 input() 是一样的。

2 个回答

0

谢谢你,Joran Beasley,我之前没想到这一点。结果发现,当你按下取消按钮时,它其实只是返回了 None。它想要找的那个 if 语句是:

elif answer == None:
    input = True
0

打印一些信息在很多时候都很有帮助。

input = False
while input == False:
    answer = getInput('1 or 2')
    print "GOT : %s"%answer

现在只需点击取消,看看它显示什么……我不知道getInput是什么,但我猜点击取消会返回0、false或者none。

其实可以简单地说

elif not answer:
     print "User clicked cancel"

不过,真的只要像上面那样打印出来,你就应该能清楚地知道点击取消会得到什么结果。

(显然你检查过了,它是None)所以

elif answer is None: 
    input=True

撰写回答