函数作为 tkinter 按钮命令正确执行但不在脚本中
Function executes correctly as a tkinter button command but not in the script
这是我在 Whosebug 上的第一个问题。潜伏到此为止就解决了我所有的问题
我是python新手,我还没有完全理解'self'背后的含义。
我定义了一个函数(不是方法。它不在 class 中)作为
def pcal_thresh(self):
p_th = p_thresh.get()
print('p_th')
我试图在 2 个不同的条件下使用它。首先作为 Tkinter 的命令
p_thresh = tk.Scale(calibration, from_=255, to=1, length=int(y_height*1.2), command=pcal_thresh)
其次,在另一个函数里面
def confirm():
if not top_distance == 0:
pcal_thresh()
在这个确切的配置中,函数“pcal_thresh()”作为 Tkinter 命令正确执行,但不在另一个函数中。如果我从声明中删除 'self' ,则相反。在函数内部使用时工作正常,但不能作为 Tkinter 命令使用。这可能是什么问题?
self
没有默认值,所以即使你不使用,调用[=13时还是需要提供一个值=].作为回调,它在调用时接收新的比例值。
要么提供一个伪参数
def confirm():
if not top_distance == 0:
pcal_thresh(None)
或提供默认值:
def pcal_thresh(self=None):
p_th = p_thresh.get()
print('p_th')
这是我在 Whosebug 上的第一个问题。潜伏到此为止就解决了我所有的问题
我是python新手,我还没有完全理解'self'背后的含义。
我定义了一个函数(不是方法。它不在 class 中)作为
def pcal_thresh(self):
p_th = p_thresh.get()
print('p_th')
我试图在 2 个不同的条件下使用它。首先作为 Tkinter 的命令
p_thresh = tk.Scale(calibration, from_=255, to=1, length=int(y_height*1.2), command=pcal_thresh)
其次,在另一个函数里面
def confirm():
if not top_distance == 0:
pcal_thresh()
在这个确切的配置中,函数“pcal_thresh()”作为 Tkinter 命令正确执行,但不在另一个函数中。如果我从声明中删除 'self' ,则相反。在函数内部使用时工作正常,但不能作为 Tkinter 命令使用。这可能是什么问题?
self
没有默认值,所以即使你不使用,调用[=13时还是需要提供一个值=].作为回调,它在调用时接收新的比例值。
要么提供一个伪参数
def confirm():
if not top_distance == 0:
pcal_thresh(None)
或提供默认值:
def pcal_thresh(self=None):
p_th = p_thresh.get()
print('p_th')