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 基础学习第二弹 类属性和实例属性
Aug 27 Python
使用wxPython获取系统剪贴板中的数据的教程
May 06 Python
python破解zip加密文件的方法
May 31 Python
Python 图像处理: 生成二维高斯分布蒙版的实例
Jul 04 Python
Python 计算任意两向量之间的夹角方法
Jul 05 Python
利用python计算时间差(返回天数)
Sep 07 Python
Python内置异常类型全面汇总
May 28 Python
为什么称python为胶水语言
Jun 16 Python
python中get和post有什么区别
Jun 19 Python
Python连接Mysql进行增删改查的示例代码
Aug 03 Python
python3 sqlite3限制条件查询的操作
Apr 07 Python
python 自动化偷懒的四个实用操作
Apr 11 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
PHP 防注入函数(格式化数据)
2011/08/08 PHP
解析php中的fopen()函数用打开文件模式说明
2013/06/20 PHP
解析php dirname()与__FILE__常量的应用
2013/06/24 PHP
php的mkdir()函数创建文件夹比较安全的权限设置方法
2014/07/28 PHP
CI框架源码解读之利用Hook.php文件完成功能扩展的方法
2016/05/18 PHP
PHP数据对象PDO操作技巧小结
2016/09/27 PHP
PHP中使用OpenSSL生成证书及加密解密
2017/02/05 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
在js中使用"with"语句中跨frame的变量引用问题
2007/03/08 Javascript
基于JQuery的模拟苹果桌面Dock效果(稳定版)
2012/10/15 Javascript
js过滤HTML标签以及空格的思路及代码
2013/05/24 Javascript
js实现鼠标悬停图片上时滚动文字说明的方法
2015/02/17 Javascript
javascript自执行函数
2017/02/10 Javascript
js,jq,css多方面实现简易下拉菜单功能
2017/05/13 Javascript
jQuery实现下拉菜单的实例代码
2017/06/19 jQuery
基于easyui checkbox 的一些操作处理方法
2017/07/10 Javascript
浅谈Vuejs Prop基本用法
2017/08/17 Javascript
使用JS实现图片轮播的实例(前后首尾相接)
2017/09/21 Javascript
React Native使用fetch实现图片上传的示例代码
2018/03/07 Javascript
使用vue-route 的 beforeEach 实现导航守卫(路由跳转前验证登录)功能
2018/03/22 Javascript
vue-router3.0版本中 router.push 不能刷新页面的问题
2018/05/10 Javascript
详解swipe使用及竖屏页面滚动方法
2018/06/28 Javascript
Openlayers实现图形绘制
2020/09/28 Javascript
js+cavans实现图片滑块验证
2020/09/29 Javascript
Python中文分词实现方法(安装pymmseg)
2016/06/14 Python
Python使用Flask-SQLAlchemy连接数据库操作示例
2018/08/31 Python
django与小程序实现登录验证功能的示例代码
2019/02/19 Python
python射线法判断一个点在图形区域内外
2019/06/28 Python
Python实现SMTP邮件发送
2020/06/16 Python
解决导入django_filters不成功问题No module named 'django_filter'
2020/07/15 Python
html5-Canvas可以在web中绘制各种图形
2012/12/26 HTML / CSS
怎样让char类型的东西转换成int类型
2013/12/09 面试题
介绍一下ICMP(Internet Control Message Protocol)Internet控制信息协议
2016/11/26 面试题
股东协议书
2014/04/14 职场文书
敬老院义诊活动总结
2015/05/07 职场文书
股权投资协议书
2016/03/23 职场文书