繁体   English   中英

tkinter消息框调用功能

[英]tkinter message box calling function

我想在我的消息框中显示标签的标题,该消息框将显示为“您已选择项目”。 我怎样才能像使用保存和退出一样使用所有这些功能呢?

from tkinter import*

import tkinter.messagebox

root = Tk()

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


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

submenu = Menu(mymenu)

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

root.mainloop()

您可以使用lambda函数(用于submenu命令)和字符串格式来实现

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>) ,因此您需要以字符串格式将“ label”参数插入消息中: "you have selected: {}".format(label){}label变量的内容替换。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM