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

作者:罗兵 时间:2023-07-19 22:00:48 

本文实例讲述了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,tkinter
0
投稿

猜你喜欢

  • 儿童学习python的一些小技巧

    2021-10-14 05:09:40
  • Python基于TCP实现会聊天的小机器人功能示例

    2022-11-08 13:03:33
  • Python中dumps与dump及loads与load的区别

    2021-10-01 09:13:20
  • Server 对象 错误 ASP 0177 800401f3 的解决方案 Server 对象 错误 ASP 0177 800401f3

    2009-07-28 17:57:00
  • 设计师的幸福

    2009-05-21 11:59:00
  • 一行Python3代码实现解析地址信息

    2023-11-02 14:27:30
  • MSSQL 2005 安全设置图文教程

    2024-01-21 08:59:51
  • Python unittest基本使用方法代码实例

    2023-06-28 06:42:56
  • python导入坐标点的具体操作

    2023-02-24 19:59:46
  • server application error--IIS故障

    2009-06-11 12:50:00
  • 使用vuex缓存数据并优化自己的vuex-cache

    2024-04-30 10:46:33
  • C#使用ADO.Net连接数据库与DbProviderFactory实现多数据库访问

    2024-01-24 08:56:29
  • 构建可视化 web的 Python 神器streamlit

    2021-05-03 16:56:05
  • Oracle中返回结果集的存储过程分享

    2012-07-11 15:50:16
  • Django 实现admin后台显示图片缩略图的例子

    2022-05-30 19:46:02
  • 多种方式实现js图片预览

    2024-04-23 09:24:44
  • python深度学习tensorflow卷积层示例教程

    2021-04-02 22:59:13
  • MSSQL差异备份取系统权限的相关软件下载

    2024-01-21 16:08:46
  • Python3中对range()逆序的解释

    2023-03-26 10:27:59
  • python字典和JSON格式的转换方式

    2022-02-01 14:27:05
  • asp之家 网络编程 m.aspxhome.com