Python tkinter模块中类继承的三种方式分析
本文实例讲述了Pythontkinter模块中类继承的三种方式。分享给大家供大家参考,具体如下:
tkinterclass继承有三种方式。
提醒注意这几种继承的运行方式
一、继承object
1.铺tk.Frame给parent:
说明:
self.rootframe=tk.Frame(parent)
tk.Label(self.rootframe)
importtkinterastk classMyApp(object): def__init__(self,parent): self.rootframe=tk.Frame(parent) self.rootframe.pack() self.setupUI() defsetupUI(self): tk.Label(self.rootframe,text='标签').pack() if__name__=='__main__': root=tk.Tk() MyApp(root)#注意这句 root.mainloop()
2.直接使用root
说明:
self.root=parent
tk.Label(self.root)
importtkinterastk classMyApp(object): def__init__(self,parent,**kwargs): self.root=parent self.root.config(**kwargs) self.setupUI() defsetupUI(self): tk.Label(self.root,text='标签').pack() if__name__=='__main__': root=tk.Tk() app=test(root) root.mainloop()
二、继承tk.Tk
importtkinterastk classMyApp(tk.Tk): def__init__(self): super().__init__() self.setupUI() defsetupUI(self): tk.Label(self,text='标签').pack() if__name__=='__main__': MyApp().mainloop()
三、继承tk.Frame
分两种情况
1.有parent
importtkinterastk classMyApp(tk.Frame): def__init__(self,parent=None): super().__init__(parent) self.pack() self.setupUI() defsetupUI(self): tk.Label(self,text='标签').pack() if__name__=='__main__': MyApp(tk.Tk()).mainloop() #MyApp().mainloop()#也可以这样
注意:self.pack()
2.没有parent
importtkinterastk classMyApp(tk.Frame): def__init__(self): super().__init__() self.pack() self.setupUI() defsetupUI(self): tk.Label(self,text='标签').pack() if__name__=='__main__': MyApp().mainloop()
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《PythonSocket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。