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中的random()方法的使用介绍
May 15 Python
Python将多个list合并为1个list的方法
Jun 27 Python
python多线程调用exit无法退出的解决方法
Feb 18 Python
Python with用法:自动关闭文件进程
Jul 10 Python
Django中使用haystack+whoosh实现搜索功能
Oct 08 Python
Python阶乘求和的代码详解
Feb 14 Python
Pycharm+Python工程,引用子模块的实现
Mar 09 Python
如何理解python中数字列表
May 29 Python
Python如何截图保存的三种方法(小结)
Sep 01 Python
详解anaconda离线安装pytorchGPU版
Sep 08 Python
详解python使用金山词霸的翻译功能(调试工具断点的使用)
Jan 07 Python
利用Python脚本写端口扫描器socket,python-nmap
Jul 23 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设计模式 Chain Of Responsibility (职责链模式)
2011/06/26 PHP
PHP学习笔记之字符串编码的转换和判断
2014/05/22 PHP
php设计模式之工厂方法模式分析【星际争霸游戏案例】
2020/01/23 PHP
css图片自适应大小
2007/11/28 Javascript
javascript中万恶的function实例分析
2011/05/25 Javascript
javascript实现json页面分页实例代码
2014/02/20 Javascript
jquery序列化form表单使用ajax提交后处理返回的json数据
2014/03/03 Javascript
javascript结合canvas实现图片旋转效果
2015/05/03 Javascript
javascript实现列表滚动的方法
2015/07/30 Javascript
JavaScript Array对象详解
2016/03/01 Javascript
Bootstrap datepicker日期选择器插件使用详解
2017/07/26 Javascript
Js利用console计算代码运行时间的方法示例
2017/09/24 Javascript
JS面向对象编程——ES6 中class的继承用法详解
2020/03/03 Javascript
微信小程序实现音乐播放页面布局
2020/12/11 Javascript
[01:03:54]Liquid vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
使用python提取html文件中的特定数据的实现代码
2013/03/24 Python
python判断给定的字符串是否是有效日期的方法
2015/05/13 Python
对python中的iter()函数与next()函数详解
2018/10/18 Python
python 获取一个值在某个区间的指定倍数的值方法
2018/11/12 Python
用python写测试数据文件过程解析
2019/09/25 Python
Python数据可视化:顶级绘图库plotly详解
2019/12/07 Python
Python.append()与Python.expand()用法详解
2019/12/18 Python
Python处理mysql特殊字符的问题
2020/03/02 Python
Python同时处理多个异常的方法
2020/07/28 Python
函授毕业生的自我鉴定
2013/11/26 职场文书
行政办公员自我评价分享
2013/12/14 职场文书
审计工作个人的自我评价
2013/12/25 职场文书
学校安全工作制度
2014/01/19 职场文书
大家访活动实施方案
2014/03/10 职场文书
入股协议书范本
2014/04/14 职场文书
室内设计专业毕业生求职信
2014/05/02 职场文书
运动会广播稿200字
2015/08/19 职场文书
使用CSS3实现按钮悬停闪烁动态特效代码
2021/08/30 HTML / CSS
关于 Python json中load和loads区别
2021/11/07 Python
详解MongoDB排序时内存大小限制与创建索引的注意事项
2022/05/06 MongoDB
在Oracle表中进行关键词搜索的过程
2022/06/10 Oracle