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()
tkinter 类继承的三种方式的更多相关文章
- Java反射获取类对象的三种方式
package demo01; /* * 获取一个类的class文件对象的三种方式 * 1.对象获取 * 2.类名获取 * 3.Class类的静态方法获取 */ public class Reflec ...
- C++中的类继承(1) 三种继承方式
继承是使代码可以复用的重要手段,也是面向对象程序设计的核心思想之一.简单的说,继承是指一个对象直接使用另一对象的属性和方法.继承呈现了 面向对象程序设 计的层次结构, 体现了 由简单到复杂的认知过程. ...
- 实现JavaScript中继承的三种方式
在JavaScript中,继承可以通过三种手法实现原型链继承 使用apply.call方法 对象实例间的继承. 一.原型链继承 在原型链继承方面,JavaScript与java.c#等语言类似 ...
- JavaScript面向对象(三)——继承与闭包、JS实现继承的三种方式
前 言 JRedu 在之前的两篇博客中,我们详细探讨了JavaScript OOP中的各种知识点(JS OOP基础与JS 中This指向详解 . 成员属性.静态属性.原型属性与JS原型链).今天 ...
- javascript实现继承的三种方式
一.原型链继承 function Parent(){} function Child(){} Child.prototype = new Parent(); 通过对象child的prototype属 ...
- ORM下实现继承的三种方式(TPH TPC TPT)
TPH(Table Per Hierarchy):所有的数据都放在同一个表格内,但是使用辨别标志(Discriminator)的方式来区分 TPC(Table Per Concrete-Type):由 ...
- js中原型继承的三种方式
- 三种方式创建bean对象在springIOC容器中初始化、销毁阶段要调用的自定义方法
1. 使用@Bean注解定义initMethod和destroyMethod 所谓initMethod和destroyMethod,是指在springIOC容器中,对于bean对象执行到初始化阶段和销 ...
- Java中 实现多线程成的三种方式(继承,实现,匿名内部类)
---------------------------------------------------------------------------------------------------- ...
随机推荐
- 全面理解JavaScript中的闭包的含义及用法
1.什么是闭包 闭包:闭包就是能够读取其他函数内部变量的函数;闭包简单理解成“定义在一个函数内部的函数”. 闭包的形式:即内部函数能够使用它所在级别的外部函数的参数,属性或者内部函数等,并且能在包含它 ...
- 安装了SQL2005再安装SQL 2008R2,提示此计算机上安装了 Microsoft Visual Studio 2008 的早期版本和检查是否安装了 SQL Server 2005 Express 工具的解决方案
工作电脑上安装了SQL 2005, 但是客户电脑上安装的是SQL 2008R2,有时候连接他们的库调试没法连接,很不方便.然后又安装了个SQL2008 R2,期间遇到这两个问题,网上搜索了一下收到了解 ...
- history
history用来显示最近执行的命令,系统中将当前的允许的最大保存的历史命令条数保存在环境变量HISTSIZE中,缺省选项时表示显示最多HISTSIZE个命令,可以指定显示最近的n条命令 $histo ...
- [转]Zabbix 3.0 安装笔记
Zabbix 3.0 只支持CentOS 7.0以上版本,所以先在虚拟机中安装好CentOS 7.0 x64,并设置好IP,允许虚拟机联网. 1.安装MySQL 从最新版本的linux系统开始,默认的 ...
- URL编码知识摘抄备忘
网页工具 http://www.107000.com/T-UrlEncode/ 参考: 维基百科http://zh.wikipedia.org/zh/%E7%99%BE%E5%88%86%E5%8F% ...
- openwrt修改flash大小
前言 默认openwrt trunk编译出来的flash大小为8M,但是我们手上的板子可能flash大小更大,本文以MT7620a为例,将其flash大小由8M修改为16M或者32M 增加dts文件 ...
- hdu Dylans loves tree [LCA] (树链剖分)
Dylans loves tree view code#pragma comment(linker, "/STACK:1024000000,1024000000") #includ ...
- linux进程间通信-消息队列
一 消息队列的介绍 消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法. 每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构. 我们可以通过发送消息来避免命名管道的 ...
- [转]PLSQL Developer备份恢复oracle数据
本文转自:http://www.cnblogs.com/iampkm/archive/2013/06/09/3128273.html 使用PL sql提供的功能可以快速的备份恢复oracle数据. 1 ...
- Java方法区和运行时常量池溢出问题分析
运行时常量池是方法区的一部分,方法区用于存放Class的相关信息,如类名.访问修饰符.常量池.字段描述.方法描述等. String.intern()是一个native方法,它的作用是:如果字符串常量池 ...