如何使可点击的按钮运行子程序? Python 3.X.X
Posted
技术标签:
【中文标题】如何使可点击的按钮运行子程序? Python 3.X.X【英文标题】:How do I make a clickable button run a subprugram? Python 3.X.X 【发布时间】:2022-01-13 19:02:38 【问题描述】:大家好,我的 python 代码遇到了一点小挫折,我使用 tkinter 导入为一个运行良好的项目创建了一个 GUI,但是当我为按钮编写代码以运行子程序时,它会通知我语法错误我不知道如何解决,如果有人能帮助我非常感激,错误会出现在“def coinCount”中的“def”上。我在下面附上了我的 GUI 菜单代码。提前致谢
#Create Menubar in Python GUI Application
import tkinter as tk
from tkinter import ttk
from tkinter import Menu
win = tk.Tk()
win.title("Coin Counter 3000")
#Exit action
def _quit():
win.quit()
win.destroy()
exit()
#Create Menu Bar
menuBar=Menu(win)
win.config(menu=menuBar)
#File Menu
fileMenu= Menu(menuBar, tearoff=0)
fileMenu.add_command(label="New")
fileMenu.add_separator()
fileMenu.add_command(label="1: Add to coincount-", command=lambda: def countCoint():
fileMenu.add_separator()
fileMenu.add_command(label="2: View all records-", command=lambda:
fileMenu.add_separator()
fileMenu.add_command(label="3: Accuracy of counters (volunteer accuracy report)-", command=lambda:def volunteerReport():
fileMenu.add_separator()
ileMenu.add_command(label="4: Display Totals-", command=lambda:def displayTotals():
fileMenu.add_separator()
sub_menu = Menu(fileMenu, tearoff=0)
sub_menu.add_command(label='Keyboard Shortcuts')
sub_menu.add_command(label='Color Themes')
fileMenu.add_separator()
fileMenu.add_command(label="4: Show total-", command=lambda:def runningTotals():
fileMenu.add_separator()
fileMenu.add_command(label="Exit", command=_quit)
menuBar.add_cascade(label="File", menu=fileMenu)
#Help Menu
helpMenu= Menu(menuBar, tearoff=0)
helpMenu.add_command(label="About")
menuBar.add_cascade(label="Help", menu=helpMenu)
#Calling Main()
win.mainloop()
【问题讨论】:
【参考方案1】:一些问题。
首先,在将函数作为参数传递给add_command
之前,您必须定义函数(称为“子程序”)。
其次,您通过尝试用它定义命名函数来滥用lambda
。 lambda
s 用于创建小型匿名函数,因此def
关键字不是必需的,会导致语法错误。请参阅 Python 的 official documentation 和其他在线资源了解其用法。
第三,lambda 可能不是这里工作的最佳工具。相反,完全定义您计划使用的函数(coinCount
、runningTotals
等)并将函数 names 作为参数传递。
def addToCoinCount():
# Your code.
fileMenu.add_separator()
fileMenu.add_command(label="1: Add to coincount-", command=addToCoinCount
fileMenu.add_separator()
【讨论】:
嗯,好的,谢谢,老实说,我只是在学校学习 python,而且是新手,不知道我在做什么,我只是拿一些其他代码,然后尝试将它们拼凑. 要充分利用课堂,最好花时间查看您拥有的代码并了解您告诉计算机的内容。从一个小而易于管理的问题开始,直到你了解如何解决它,然后继续前进。将代码拼凑在一起可能会奏效,但很容易出错,而且创建起来绝对不是很有趣! 我尝试了你的改进方法,我已经克服了 def 的语法,但是出现了“fileMenu.add_separator()”的新语法,fileMenu.add_separator() fileMenu.add_command(label="1: Add to coincount-", command=countCoins fileMenu.add_separator() 在fileMenu.add_command(...
行缺少关闭)
。以上是关于如何使可点击的按钮运行子程序? Python 3.X.X的主要内容,如果未能解决你的问题,请参考以下文章