tkinter 类继承的三种方式

简介: tkinter class继承有三种方式。提醒注意这几种继承的运行方式一、继承 object1.铺tk.Frame给parent:说明:self.rootframe = tk.Frame(parent)tk.

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()
目录
相关文章
|
SQL 存储 分布式数据库
【通过Hive清洗、处理和计算原始数据,Hive清洗处理后的结果,将存入Hbase,海量数据随机查询场景从HBase查询数据 】
【通过Hive清洗、处理和计算原始数据,Hive清洗处理后的结果,将存入Hbase,海量数据随机查询场景从HBase查询数据 】
803 0
|
存储 开发框架 算法
【串口通信】使用C++和Qt设计和实现串口协议解析器(一)
【串口通信】使用C++和Qt设计和实现串口协议解析器
3514 0
|
安全 网络安全
Metasploit Pro 4.20.0安装与使用
Metasploit Pro 4.20.0安装与使用
828 0
Metasploit Pro 4.20.0安装与使用
|
小程序 Linux 区块链
Python PyInstaller 打包成 Win、Mac 应用程序(app / exe)
Python PyInstaller 打包成 Win、Mac 应用程序(app / exe)
6159 0
|
10月前
|
存储 数据挖掘 数据处理
Pandas高级数据处理:数据安全与隐私保护
在数字化时代,数据安全与隐私保护至关重要。本文介绍使用Pandas进行数据分析时常见的安全问题及解决方案,包括数据泄露风险、权限报错、数据类型转换错误等,并结合代码案例详细讲解如何避免和解决这些问题。同时,探讨高级策略如访问控制、匿名化、差分隐私及加密传输存储,确保数据分析合法合规。
272 7
|
文字识别 API 数据安全/隐私保护
PyMuPDF 1.24.4 中文文档(一)(1)
PyMuPDF 1.24.4 中文文档(一)
426 1
|
数据采集 XML Web App开发
6个强大且流行的Python爬虫库,强烈推荐!
6个强大且流行的Python爬虫库,强烈推荐!
1032 6
|
JSON 小程序 JavaScript
超详细微信小程序开发学习笔记,看完你也可以动手做微信小程序项目
这篇文章是一份全面的微信小程序开发学习笔记,涵盖了从小程序介绍、环境搭建、项目创建、开发者工具使用、文件结构、配置文件、模板语法、事件绑定、样式规范、组件使用、自定义组件开发到小程序生命周期管理等多个方面的详细教程和指南。
|
SQL 关系型数据库 数据库连接
SqlAlchemy 2.0 中文文档(四十五)(1)
SqlAlchemy 2.0 中文文档(四十五)
245 0
|
开发者 UED
图形用户界面(GUI)设计:使用Visual Basic创建直观的界面
【4月更文挑战第27天】本文探讨了使用Visual Basic设计直观GUI的方法,强调GUI设计对用户体验的重要性。通过Visual Basic的窗体设计器、属性窗口和工具箱,开发者可轻松构建界面。标准控件、布局工具和交互性设计是关键要素,遵循简洁性、一致性和可访问性的原则。进行可用性测试并根据反馈优化是提升GUI质量的有效途径。案例研究、最佳实践和技巧分享有助于开发者创造美观、易用的界面。随着技术发展,未来GUI设计将更加注重用户体验和交互性。
561 1