【Me】:如何点击一个按钮后让窗口仍然显示?

【Me】:python:用easygui生成一个窗口上有三个按钮,如何让点击一个按钮后窗口仍然显示?
【AI】:使用EasyGui库可以很容易地实现这个功能。以下是一个简单的Python程序,可以在窗口上显示三个按钮,并在点击按钮后保持窗口打开:

import easygui as eg

while True:
    button_choices = ["Button 1", "Button 2", "Button 3"]
    choice = eg.buttonbox("Choose a button", choices=button_choices)
    
    if choice == None: # 如果用户点击了关闭按钮,则退出程序
        break
    
    eg.msgbox("You clicked " + choice)

在这个程序中,我们使用了一个无限循环来保持窗口打开。每次循环中,我们使用buttonbox()函数来显示一个带有三个按钮的窗口,然后等待用户点击其中一个按钮。如果用户点击了关闭按钮,则循环结束,程序退出。否则,我们使用msgbox()函数来显示一个消息框,告诉用户他们点击了哪个按钮。

请注意,由于我们使用了一个无限循环来保持窗口打开,因此用户必须手动关闭程序。如果您想要在某个条件下自动关闭窗口,可以在循环中添加相应的逻辑。

【Me】:print("Reply was: {!r}".format(reply)) 中的 !r 是什么意思?
【AI】:在字符串格式化中,!r 表示使用 repr() 函数对参数进行转换,并将结果插入到字符串中。

repr() 函数用于获取对象的“官方”表示形式,通常用于调试和开发过程中。与之不同的是,str() 函数用于获取对象的“人类可读”表示形式。

例如,假设 reply 是一个包含特殊字符的字符串,如下所示:

reply = "Hello\tWorld\n"

如果我们使用 str.format() 函数将其插入到字符串中,如下所示:

print("Reply was: {}".format(reply))

则输出结果为:

Reply was: Hello	World

注意,制表符和换行符都被转义成了它们对应的字符。

但是,如果我们使用 !r 进行格式化,如下所示:

print("Reply was: {!r}".format(reply))

则输出结果为:

Reply was: 'Hello\tWorld\n'

这里,!r 强制使用 repr() 函数对 reply 进行转换,因此输出结果包含了特殊字符的转义形式。

posted @ 2023-06-23 00:46  nxhujiee  阅读(64)  评论(0)    收藏  举报