Python运行自定义WifiCall类出现无master属性AttributeError报错求解
问题原因及修复方案
核心报错原因:你在__init__方法中没有先把传入的master参数赋值给实例属性self.master,就直接调用self.master.title,才会触发AttributeError。除此之外代码里还有多个语法/逻辑错误,全部修复点如下:
- 进入
__init__方法后第一行先添加self.master = master,把传入的窗口对象绑定为实例属性 - 参数默认值
none要改成Python的空值关键字None(首字母大写) self.master.title(ÏT SUPPORT")存在两处错误:开头多了乱码字符Ï、字符串左侧缺双引号,要改成self.master.title("IT SUPPORT")- 变量名大小写不匹配:前面定义的是
self.bg_label,后面调用place方法时写成了self.bg_Label(L大写),要统一拼写 if __name__=='__main__'的判断语句缩进错误,不应该放在WifiCall类的内部,要顶格写,同时if和__name__之间要加空格- 额外注意:你用到了
Tk、Canvas、PhotoImage、Label这些Tkinter组件,需要在代码开头导入对应的库
修复后完整代码
from tkinter import * class WifiCall(): def __init__(self, master=None): self.master = master self.master.title("IT SUPPORT") self.master.geometry("750x450") self.qrc = Canvas(self.master, bg='gray16', height=200, width=200) self.qrbg = PhotoImage(file=f"guestbg.png") self.bg_label = Label(self.master, image=self.qrbg) self.bg_label.place(x=0, y=0, relwidth=1, relheight=1) # QR Code self.qr = PhotoImage(file=f"guestbar.png") self.qr_Label = Label(self.master, image=self.qr) self.qr_Label.place(x=121, y=97, width=226, height=294) self.qrc.pack() self.master.resizable(False, False) if __name__ == '__main__': master = Tk() WifiCall(master) master.mainloop()
内容的提问来源于stack exchange,提问作者Ross Pascual
相关产品推荐
相关产品推荐

