2024-05-29 05:08:28 发布
网友
尝试在画布上实现一个按钮,该画布在单击时打开.pdf文件。在
.pdf
我的尝试如下
self.B3 = Button(InputFrame,text='Graphical Plots', command = os.startfile('Bessel.pdf'),bd=5,width=13,font="14") self.B3.grid(column =0,row=3)
不幸的是,在我单击按钮之前,我的代码会在运行后立即打开.pdf文件。为什么?在
当Python处理这两行代码时,它在第一行中看到了这一点:
os.startfile('Bessel.pdf')
并将其解释为有效的函数调用。所以,它调用函数。在
要解决此问题,请在该行之前定义一个函数来处理click事件,然后将按钮的command操作分配给它:
command
或者,在这种情况下,使用一个^{}(匿名函数):
self.B3 = Button(InputFrame, text='Graphical Plots', command=lambda: os.startfile('Bessel.pdf'), bd=5, width=13, font="14")
或者,正如@J.F.Sebastian所说,您可以使用^{}:
self.B3 = Button(InputFrame, text='Graphical Plots', command=functools.partial(os.startfile, "Bessel.pdf"), bd=5, width=13, font="14")
请注意,您必须先导入functools。在
functools
当Python处理这两行代码时,它在第一行中看到了这一点:
并将其解释为有效的函数调用。所以,它调用函数。在
要解决此问题,请在该行之前定义一个函数来处理click事件,然后将按钮的
^{pr2}$command
操作分配给它:或者,在这种情况下,使用一个^{} (匿名函数):
或者,正如@J.F.Sebastian所说,您可以使用^{} :
请注意,您必须先导入
functools
。在相关问题 更多 >
编程相关推荐