我正在为PC做一个愚蠢的“抗冠状病毒”。这是代码:
import tkinter as tk
from tkinter import \* from tkinter import ttk
import random
window=Tk()
window.geometry('500x500')
window.resizable(False, False)
window.title('Anti Corona')
window.config(bg='light blue')
anti=tk.Label(text='Anti Corona')
anti.config(bg='light blue', font=('Arial black', 50))
anti.pack()
anti2=tk.Label(text='')
anti2.config(bg='light blue', font=('Arial black', 100))
anti2.pack()
def scaner(self):
self.f1=tk.Frame()
self.f1.pack()
self.progress=ttk.Progressbar(f1)
self.progress.length(50)
self.progress.pack()
scan=tk.Button(window, text='Scan!')
scan.config(height=1, width=10, font=('Century gothic', 30, 'bold'), bg='green', disabledforeground='', command=scaner())
scan.pack()
window.mainloop()
问题是它输出一个错误:
Traceback (most recent call last):
File "C:\Users\cicle.EAAULAINF1W-008\Desktop\Anticorona.py", line 23, in <module>
scan.config(height=1, width=10, font=('Century gothic', 30, 'bold'), bg='green', disabledforeground='', command=scaner())
TypeError: scaner() missing 1 required positional argument: 'self'
但是当我退出def中的所有self
时,输出为:
Traceback (most recent call last):
File "C:\Users\cicle.EAAULAINF1W-008\Desktop\Anticorona.py", line 23, in <module>
scan.config(height=1, width=10, font=('Century gothic', 30, 'bold'), bg='green', disabledforeground='', command=scaner())
File "C:\Users\cicle.EAAULAINF1W-008\Desktop\Anticorona.py", line 20, in scaner
progress.length(50)
AttributeError: 'Progressbar' object has no attribute 'length'
我不知道该怎么办!请帮帮我!
问题来源:stackoverflow
您在这里遇到一些问题。
首先,您的command = scaner()必须是command = scaner。
第二,您的函数不应以self
作为参数。这不是在类中构建的。
第三progress.length(50)
将导致错误,并且在进度类中没有这样的名为length
的方法。相反,您想执行Progressbar(f1,length = 50)
import tkinter as tk
from tkinter import ttk
def scanner():
global progress
f1 = tk.Frame()
f1.pack()
progress = ttk.Progressbar(f1, length=50)
progress.pack()
window = tk.Tk()
window.geometry('500x500')
window.resizable(False, False)
window.title('Anti Corona')
window.config(bg='light blue')
tk.Label(text='Anti Corona', bg='light blue', font=('Arial black', 50)).pack()
tk.Label(text='', bg='light blue', font=('Arial black', 100)).pack()
tk.Button(window, text='Scan!', bg='green', disabledforeground='', height=1, width=10,
font=('Century gothic', 30, 'bold'), command=scanner).pack()
window.mainloop()
回答来源:stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。