zoukankan      html  css  js  c++  java
  • tkinter 类继承的三种方式

    tkinter class继承有三种方式。

    提醒注意这几种继承的运行方式

    一、继承 object

    1.铺tk.Frame给parent:

    说明:

    • self.rootframe = tk.Frame(parent)
    • tk.Label(self.rootframe)
    import tkinter as tk
    
    class MyApp(object):
        def __init__(self, parent):
            self.rootframe = tk.Frame(parent)
            self.rootframe.pack()
            
            self.setupUI()
            
            
        def setupUI(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)
    import tkinter as tk
    
    class MyApp(object):
        def __init__(self, parent, **kwargs):
            self.root = parent
            self.root.config(**kwargs)
            
            self.setupUI()
        
        def setupUI(self):
            tk.Label(self.root, text = '标签').pack()
    
            
    if __name__ == '__main__':
        root = tk.Tk()
        app = test(root)
        root.mainloop()
    

    二、继承 tk.Tk

    import tkinter as tk
    
    class MyApp(tk.Tk):
        
        def __init__(self):
            super().__init__()
            
            self.setupUI()
    
            
        def setupUI(self):
            tk.Label(self, text='标签').pack()
            
            
    if __name__ == '__main__':
        MyApp().mainloop()
    

    三、继承 tk.Frame

    分两种情况

    1.有parent

    import tkinter as tk
    
    class MyApp(tk.Frame):
        def __init__(self, parent=None):
            super().__init__(parent)
            self.pack()
            
            self.setupUI()
            
            
        def setupUI(self):
            tk.Label(self, text='标签').pack()
            
            
    if __name__ == '__main__':
        MyApp(tk.Tk()).mainloop()
        #MyApp().mainloop() # 也可以这样
    

    注意: self.pack()

    2.没有parent

    import tkinter as tk
    
    class MyApp(tk.Frame):
        
        def __init__(self):
            super().__init__()
            self.pack()
            
            self.setupUI()
    
        
        def setupUI(self):
            tk.Label(self, text='标签').pack()
            
            
    if __name__ == '__main__': 
        MyApp().mainloop()
    
  • 相关阅读:
    [原创] 分享一些linux教程
    [转] linux中pam模块
    [转] 虚拟机VMware3种网络模式(桥接、nat、Host-only)的工作原理
    [转] linux中常用的命令
    dede调用指定的多个栏目导航
    dede留言板BUG解决
    织梦如何实现二级栏目导航的仿制
    DEDE数据库修改
    任务管理器磁盘显示100%
    再次改版轮播图
  • 原文地址:https://www.cnblogs.com/hhh5460/p/5859475.html
Copyright © 2011-2022 走看看