簡體   English   中英

Tkinter 按鈕綁定拋出額外參數錯誤

[英]Tkinter button bind throws extra argument error

我正在嘗試編寫tkinter代碼,該代碼在單擊按鈕時或在按鈕處於焦點時單擊 enter 時調用 function。 我有以下代碼:

import tkinter as tk

m = tk.Tk(className="My window")
def callback():
    print("Ice cream weather")

butt = tk.Button(m, text="My button", width=25, command=callback)
butt.grid()
butt.focus_set()
butt.bind('<Return>', callback)
m.mainloop()

但是當我運行它並按Enter時,出現以下錯誤:

Traceback (most recent call last):
  File "C:\Users\chiller\AppData\Local\Programs\Python\Python37\lib\tkinter\__init__.py", line 1705, in __call__
    return self.func(*args)
TypeError: callback() takes 0 positional arguments but 1 was given

我找到了一個解決方案,已在下面發布,但我想知道是否有更簡單或更整潔的修復方法。

解決這個問題的一種方法是將 function 設置為接受一個虛擬參數,並在未傳遞時設置默認值(即按鈕單擊,傳遞 0 個參數)。 這只是改變線路

def callback():

def callback(pointless=None):

這提供了從按下Enter到 go 的額外參數,而不需要它來按下按鈕。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM