tkinter消息框调用功能

时间:2018-01-24 09:02:31

标签: python tkinter messagebox

我想在我的消息框中显示标签的标题,它将显示为"您已选择项目"。我怎么能用所有这些来做,比如保存和退出也只使用一个功能?

workbook.close();

1 个答案:

答案 0 :(得分:2)

您可以使用lambda函数(对于子菜单命令)和string formatting来执行此操作:

from tkinter import *

import tkinter.messagebox

root = Tk()

def func(label):
    tkinter.messagebox.askquestion("Information", "you have selected: {}".format(label))


mymenu = Menu(root)
root.config(menu = mymenu)

submenu = Menu(mymenu)

mymenu.add_cascade(label="file", menu=submenu)
submenu.add_command(label="project", command=lambda: func("project"))
submenu.add_command(label= "save", command=lambda: func("save"))
submenu.add_separator()
submenu.add_command(label="exit", command=lambda: func("exit"))

root.mainloop()

lambda函数用于将对应于子菜单项的label参数传递给func

对于消息框,语法为tkinter.messagebox.askquestion(<title>, <message>),因此您需要在消息中插入带有字符串格式的标签参数:"you have selected: {}".format(label){}替换为label的内容<div id="app"> <div id="app-hdr"></div> <div id="app-body"></div> </div> html, body, #app { width: 100vw; min-height: 100vh; margin: 0; padding: 0; } #app { display: grid; grid-template-rows: 60px auto; grid-template-columns: auto; grid-template-areas: "header" "content"; background: #F00; } #app-hdr{ grid-area: header; background: #AAA; } #app-body{ grid-area: content; background: #666; } 变量。