12

I've been trying to build a fairly simple message box in tkinter that has "YES" and "NO" buttons. When I push the "YES" button internally it must go and write YES to a file. Similarly, when "NO" is pushed, NO must be written to a file. How can I do this?

4

5 回答 5

21

You can use the module tkMessageBox for Python 2.7 or the corresponding version for Python 3 called tkinter.messagebox.

It looks like askquestion() is exactly the function that you want. It will even return the string "yes" or "no" for you.

于 2009-06-27T08:54:42.357 回答
12

下面介绍如何使用 Python 2.7 中的消息框提问。您需要特别的模块tkMessageBox

from Tkinter import *
import tkMessageBox


root = Tk().withdraw()  # hiding the main window
var = tkMessageBox.askyesno("Title", "Your question goes here?")

filename = "log.txt"

f = open(filename, "w")
f.write(str(var))
print str(var) + " has been written to the file " + filename
f.close()
于 2012-07-16T01:06:29.147 回答
8

您可以将askquestion函数的返回值分配给一个变量,然后您只需将变量写入文件:

from tkinter import messagebox

variable = messagebox.askquestion('title','question')

with open('myfile.extension', 'w') as file: # option 'a' to append
    file.write(variable + '\n')
于 2012-12-10T09:10:44.450 回答
0

您可以使用message boxTkinter 使用

# For python 3 or above
from tkinter import messagebox

# For python less than 3
from Tkinter import *
import tkMessageBox

这是基本语法:

messagebox.Function_Name(title, message [, options])

消息框是模态的,将根据用户的选择返回 (True, False, OK, None, Yes, No) 的子集。

因此,要获取消息框的值,您只需将值存储在变量中。下面给出一个例子:

res=mb.askquestion('Exit Application', 'Do you really want to exit')
if res == 'yes' :
    root.destroy()

有不同类型的消息框或 Function_name:

  1. showinfo():向用户显示一些相关信息。
  2. showwarning():向用户显示警告。
  3. showerror():向用户显示错误信息。
  4. askquestion():提出问题,用户必须回答是或否。
  5. askokcancel():确认用户对某些应用程序活动的操作。
  6. askyesno():用户可以对某些操作回答是或否。
  7. askretrycancel():询问用户是否再次执行特定任务。
  8. 消息:创建一个默认的信息框,或与 showinfo 框相同。
messagebox.Message(master=None, **options)
# Create a default information message box.

您甚至可以传递您自己的标题、消息,甚至修改其中的按钮文本。

您可以在消息 boz 中传递的内容:

  • title:此参数是一个字符串,显示为消息框的标题。
  • message:此参数是要在消息框上显示为消息的字符串。
  • 选项:有两个选项可以使用:
    1. default:此选项用于指定消息框中的默认按钮,如 ABORT、RETRY 或 IGNORE。
    2. parent:此选项用于指定要在其上显示消息框的窗口。

我用于此答案的链接:

于 2022-02-23T14:29:41.073 回答
0

您不需要任何其他模块来执行此操作!

from tkinter import messagebox

messagebox.showerror("Title", "Message")
于 2020-11-29T13:17:24.653 回答