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 相关文章推荐
django+js+ajax实现刷新页面的方法
May 22 Python
Python数据结构与算法之常见的分配排序法示例【桶排序与基数排序】
Dec 15 Python
Python爬虫之pandas基本安装与使用方法示例
Aug 08 Python
浅谈django orm 优化
Aug 18 Python
Python 做曲线拟合和求积分的方法
Dec 29 Python
Python 图像处理: 生成二维高斯分布蒙版的实例
Jul 04 Python
python实现beta分布概率密度函数的方法
Jul 08 Python
python pycharm的安装及其使用
Oct 11 Python
python多进程 主进程和子进程间共享和不共享全局变量实例
Apr 25 Python
Python是什么 Python的用处
May 26 Python
Python实现区域填充的示例代码
Feb 03 Python
Python Pygame实战在打砖块游戏的实现
Mar 17 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
Mysql数据库操作类( 1127版,提供源码下载 )
2010/12/02 PHP
Codeigniter通过SimpleXML将xml转换成对象的方法
2015/03/19 PHP
PHP字符串逆序排列实现方法小结【strrev函数,二分法,循环法,递归法】
2017/01/13 PHP
Yii2框架配置文件(Application属性)与调试技巧实例分析
2019/05/27 PHP
Javascript的数组与字典用法与遍历对象的属性技巧
2012/11/07 Javascript
javascript之典型高阶函数应用介绍二
2013/01/10 Javascript
JS控件ASP.NET的treeview控件全选或者取消(示例代码)
2013/12/16 Javascript
JavaScript调试工具汇总
2014/12/23 Javascript
jQuery插件jFade实现鼠标经过的图片高亮其它变暗
2015/03/14 Javascript
Vuex之理解Mutations的用法实例
2017/04/19 Javascript
angular内置provider之$compileProvider详解
2017/09/27 Javascript
webpack 从指定入口文件中提取公共文件的方法
2018/11/13 Javascript
微信小程序自定义多列选择器使用详解
2019/06/21 Javascript
jquery.pager.js分页实现详解
2019/07/29 jQuery
Vue.use()在new Vue() 之前使用的原因浅析
2019/08/26 Javascript
vue实现桌面向网页拖动文件的示例代码(可显示图片/音频/视频)
2021/03/01 Vue.js
[01:10]DOTA2次级职业联赛 - EP战队宣传片
2014/12/01 DOTA
跟老齐学Python之集合的关系
2014/09/24 Python
对python多线程SSH登录并发脚本详解
2019/02/14 Python
解决Tensorflow 内存泄露问题
2020/02/05 Python
使用Keras实现Tensor的相乘和相加代码
2020/06/18 Python
python 实时调取摄像头的示例代码
2020/11/25 Python
html5的自定义data-*属性与jquery的data()方法的使用
2014/07/02 HTML / CSS
乌克兰时尚鞋子和衣服购物网站:Born2be
2018/05/24 全球购物
韩国美国时尚服装和美容在线全球市场:KOODING
2018/11/07 全球购物
介绍Ibatis的核心类
2013/11/18 面试题
火锅店创业计划书范文
2014/02/02 职场文书
竞争性谈判邀请书
2014/02/06 职场文书
2014年学习雷锋活动总结
2014/03/01 职场文书
个人思想政治总结
2015/03/05 职场文书
通知的格式范文
2015/04/27 职场文书
小学数学教学随笔
2015/08/14 职场文书
生日寿星公答谢词
2015/09/29 职场文书
2019年最新借条范本!
2019/07/08 职场文书
QT与javascript交互数据的实现
2021/05/26 Javascript
搞笑Gif:这么白这么长的腿像极了一楼的女朋友
2022/03/21 杂记