Python tkinter模块中类继承的三种方式分析


Posted in Python onAugust 08, 2017

本文实例讲述了Python 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()

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python socket.error: [Errno 98] Address already in use的原因和解决方法
Aug 25 Python
python查看zip包中文件及大小的方法
Jul 09 Python
使用tensorflow实现AlexNet
Nov 20 Python
Python模拟登录的多种方法(四种)
Jun 01 Python
Django 登陆验证码和中间件的实现
Aug 17 Python
Python3 修改默认环境的方法
Feb 16 Python
详解Ubuntu16.04安装Python3.7及其pip3并切换为默认版本
Feb 25 Python
[机器视觉]使用python自动识别验证码详解
May 16 Python
Python Django切换MySQL数据库实例详解
Jul 16 Python
python使用nibabel和sitk读取保存nii.gz文件实例
Jul 01 Python
python3爬虫中多线程的优势总结
Nov 24 Python
opencv python 对指针仪表读数识别的两种方式
Jan 14 Python
Python实现注册登录系统
Aug 08 #Python
Python实现读取TXT文件数据并存进内置数据库SQLite3的方法
Aug 08 #Python
Python3 适合初学者学习的银行账户登录系统实例
Aug 08 #Python
Python初学时购物车程序练习实例(推荐)
Aug 08 #Python
Python爬虫之xlml解析库(全面了解)
Aug 08 #Python
Python 3中print函数的使用方法总结
Aug 08 #Python
Python读取sqlite数据库文件的方法分析
Aug 07 #Python
You might like
《魔兽争霸3:重制版》翻车了?你想要的我们都没有
2019/11/07 魔兽争霸
PHP文件上传实例详解!!!
2007/01/02 PHP
php图片上传存储源码并且可以预览
2011/08/26 PHP
php表单敏感字符过滤类
2014/12/08 PHP
php二维码生成
2015/10/19 PHP
再谈javascript 动态添加样式规则 W3C校检
2009/12/25 Javascript
利用JQuery制作符合Web标准的QQ弹出消息
2014/01/14 Javascript
jquery获取当前日期的方法
2015/01/14 Javascript
Vue.js仿微信聊天窗口展示组件功能
2017/08/11 Javascript
vue-music关于Player播放器组件详解
2017/11/28 Javascript
JS中精巧的自动柯里化实现方法
2017/12/12 Javascript
BootStrap模态框闪退问题实例代码详解
2018/12/10 Javascript
微信小程序实现多选删除列表数据功能示例
2019/01/15 Javascript
解决vue项目刷新后,导航菜单高亮显示的位置不对问题
2019/11/01 Javascript
vue实现购物车加减
2020/05/30 Javascript
python3编写C/S网络程序实例教程
2014/08/25 Python
尝试用最短的Python代码来实现服务器和代理服务器
2016/06/23 Python
Python编程中对super函数的正确理解和用法解析
2016/07/02 Python
Python日期的加减等操作的示例
2017/08/15 Python
Python 3.x 安装opencv+opencv_contrib的操作方法
2018/04/02 Python
Jupyter notebook远程访问服务器的方法
2018/05/24 Python
浅谈Python2、Python3相对路径、绝对路径导入方法
2018/06/22 Python
基于Python开发chrome插件的方法分析
2018/07/07 Python
远程部署工具Fabric详解(支持Python3)
2019/07/04 Python
Django Rest framework解析器和渲染器详解
2019/07/25 Python
用Python调用win命令行提高工作效率的实例
2019/08/14 Python
python SocketServer源码深入解读
2019/09/17 Python
使用keras实现densenet和Xception的模型融合
2020/05/23 Python
新手学python应该下哪个版本
2020/06/11 Python
Python scrapy爬取小说代码案例详解
2020/07/09 Python
10条PHP编程习惯
2014/05/26 面试题
火山动力Java笔试题
2014/06/26 面试题
幼儿园保育员岗位职责
2014/04/13 职场文书
社区反邪教工作方案
2014/06/16 职场文书
节水倡议书
2015/01/19 职场文书
Python自动操作神器PyAutoGUI的使用教程
2022/06/16 Python