[英]Tkinter Missing possitional argument
我正在嘗試制作一個GUI,在按下數字時會告訴我: 1,2,3,4
,它工作正常,但是當我按下按鈕時,它會在后台拋出錯誤消息。 看起來像這樣
xception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python3.7/tkinter/__init__.py", line 1705, in __call__
return self.func(*args)
File "/usr/lib/python3.7/tkinter/__init__.py", line 749, in callit
func(*args)
TypeError: shukkin() missing 1 required positional argument: 'event'
有人可以告訴我,如何制作def shukkin(event):
停止拋出該錯誤味精嗎? 哪里有問題。
這是代碼
from tkinter import *
from tkinter import ttk
from tkinter import font
from tkinter import Button as bt
import time
def quit(*args):
root.destroy()
def show_time():
txt.set(time.strftime("%H:%M:%S"))
root.after(1000, show_time)
def shukkin(event):
txt2.set("1")
fm3.after(100, shukkin)
def taikin(event):
txt2.set("2")
fm3.after(100, taikin)
def shuuchou(event):
txt2.set("3")
fm3.after(100, shuuchou)
def hoka(event):
txt2.set("4")
fm3.after(100, hoka)
root = Tk()
root.attributes("-fullscreen", True)
root.configure(background='black')
for i in range(10):
root.bind(str(1), shukkin)
root.bind(str(2), taikin)
root.bind(str(3), shuuchou)
root.bind(str(4), hoka)
root.bind("<Escape>", quit)
root.bind("x", quit)
root.after(1000, show_time)
fnt = font.Font(family='Helvetica', size=96, weight='bold')
fnt2 = font.Font(family='Helvetica', size=30)
txt = StringVar()
txt.set(time.strftime("%H:%M:%S"))
fm = Frame(root)
fm.configure(background='black')
lbl = ttk.Label(fm, textvariable=txt, font=fnt, foreground="#469aff", background="black").pack(anchor=NW,padx=40, pady=40)
fm.pack(side=LEFT, fill=BOTH)
fm2 = Frame(root)
lbl = ttk.Label(fm2, text="ボタンを押して下さい \n 1:出勤 \n 2:退勤 \n 3:出張 \n 4:その他",
font=fnt2, foreground="#469aff", background="black").pack(side=RIGHT)
fm2.pack(side=TOP, padx=8, pady=130)
fm3 = Frame(root, width=500, height=500)
txt2 = StringVar()
but = ttk.Label(fm3, textvariable=txt2, font=fnt, foreground="#469aff", background="black").pack()
fm3.pack(side=TOP)
root.mainloop()
您的shukkin
將一個事件視為arg,但是after
方法沒有生成任何事件,因此會出錯。
只需對shukkin
函數進行少量更改即可使event
可選:
def shukkin(event=None):
txt2.set("1")
fm3.after(100, shukkin)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.