tkinter实现页面切换

2023-11-18

tkinter是python标准库的GUI组件,对于一些小脚本,完全够用,但是如果是复杂的逻辑界面,当然是啊pyqt更胜一筹,笔者用过wxpython,pysimplegui,代码写完了,在打包的时候都会遇到各种各样的问题,而用tkinter就很傻瓜,基本没什么问题,这算不算兼容性更好呢哈哈,闲话少叙,进入正题,用tkinter实现界面切换。

import tkinter as tk


class Index(tk.Frame):
    def __init__(self,parent=None):
        super().__init__(parent)
        self.pack(expand=1,fill="both")
        self.frame_left = tk.Frame(self)
        self.frame_left.pack(side='left',expand=1,fill="x",padx=5,pady=5)
        #三个按钮用于切换页面
        for i in ["增加","删除","撤销"]:
            but = tk.Button(self.frame_left,text=i)
            but.pack(side='top',expand=1,fill="y")
            but.bind("<Button-1>",self.change) 
         #用于承载切换的页面内容      
        self.frame_right=tk.Frame(self)
        self.frame_right.pack(side='left',expand=1,fill="both",padx=5,pady=5)
        lab = tk.Label(self.frame_right,text="我是第一个页面")
        lab.pack()
        #根据鼠标左键单击事件,切换页面
    def change(self,event):
        res = event.widget["text"]
        for i in self.frame_right.winfo_children():
            i.destroy()
        if res == "增加":
            Page1(self.frame_right)
        elif res == "删除":
            Page2(self.frame_right)
        elif res == "撤销":
            Page3(self.frame_right)
            
class Page1(tk.Frame):
    def __init__(self,parent=None):
        super().__init__(parent)
        self.pack(expand=1,fill="both")
        tk.Label(self,text="我是page1").pack()
    
class Page2(tk.Frame):
    def __init__(self,parent=None):
        super().__init__(parent)
        self.pack(expand=1,fill="both")
        tk.Label(self,text="我是page2").pack()
        
class Page3(tk.Frame):
    def __init__(self,parent=None):
        super().__init__(parent)
        self.pack(expand=1,fill="both")
        tk.Label(self,text="我是page3").pack()

if __name__ == "__main__":

    root = tk.Tk()
    root.title("界面演示")
    index = Index(root)
    root.mainloop()

非常简单的界面演示,小伙伴们可以自己向不同页面添加内容。
在这里插入图片描述
布局很糙,关键是切换页面!!
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

tkinter实现页面切换 的相关文章

随机推荐

  • Session、Token、Cookie的区别及实际使用

    在现代Web开发中 身份验证和会话管理涉及一些基本概念 如Session Token和Cookie 尽管它们都用于管理不同方面的Web会话 但它们之间的差异是很重要的 在本文中 我们将一一介绍Session Token和Cookie的定义
  • 空间直角坐标系右手系和左手系的判定方法及绕轴旋转的正方向

    1 判定坐标系 右手大拇指指向z轴方向 其余四指由x轴握向y轴方向 如果成功 那么判定为右手系 左手大拇指指向z轴方向 其余四指由x轴握向y轴方向 如果成功 那么判定为左手系 坐标系的种类判断成功 那么接下来该判断旋转正方向 2 旋转正方向
  • Linux常用基本操作命令详解(一)

    Linux实用命令 1 前 言 2 常用Linux命令 2 1 常用的系统工作命令 2 2 系统状态检测命令 2 3 工作目录切换命令 3 小结 4 复习巩固题 参考资料 1 前 言 最近学习了有关Linux的一些常用基本命令 在此做个简单
  • python学习笔记 - 如何从几千个文件中寻找出指定的内容

    今天在处理数据时遇到这么个问题 如何从几千个txt文件中找到我想要的内容呢 这是我的实现思路 读取文件 选中指定的内容段 在新路径下保存内容段并命名为之前的文件名 以下是用python实现的代码 有详细注释 usr bin env pyth
  • Selenium Python 教程

    Selenium Python 教程 准备工作 元素定位 控制浏览器操作 Webelement常用方法 鼠标操作 键盘事件 获取断言信息 等待页面加载完成 隐式等待 在不同的窗口和框架之间移动 警告框处理 下拉框选择 文件上传 cookie
  • 网络安全(黑客)自学建议一一附学习路线

    温馨提示 为了避免误入歧途 自学请优先看 网络安全法 下面是一些学习建议 1 多请教有经验的人 切忌钻牛角尖 特别是刚入门的什么都不了解的情况下 可能你花好几天研究的一个东西 人10分钟就能搞定 一定不要做闷葫芦 有问题多问 遇到问题不可怕
  • 机器视觉第二次大作业

    内容 给定图像 消除其中的周期性干扰 以下为处理过程 1 显示图像的傅里叶变换后的频谱和傅里叶变换对数所得的频谱 从图2 可以明显的看出周期性噪声在频谱上的分布 于是在低中高频段上都有分布 但是低 通部分较少 所以考虑使用低通滤波器 此部分
  • java学习笔记13--反射机制与动态代理

    本文地址 http www cnblogs com archimedes p java study note13 html 转载请注明源地址 Java的反射机制 在Java运行时环境中 对于任意一个类 能否知道这个类有哪些属性和方法 对于任
  • StyleGAN2 解释

    本文是 1 的译文 按照作者Connor Shorten 的说法 此博客讨论的是StyleGAN2的诸如weight demodulation path length regularization和去掉progressive growing
  • VS Code Remote基于docker的Python开发环境搭建,ssh免密登录

    win电脑 生产一对公钥与私钥 私钥在win 公钥pub在服务器 ssh keygen 服务器复制私钥和ssh配置 1 root用户进入服务器 cd ssh 复制win电脑上的 ssh id rsa pu到服务器 root ssh 目录下
  • 【const-指针-数组】

    文章目录 const const 数组 const 指针 最后 const const是constant的简写 它是用来定义常量 它限定一个变量不允许被改变 产生静态作用 修饰静态变量 const int a 3 int const a 3
  • ZYNQ 库函数学习之SPI

    SPI是串行外设接口 Serial Peripheral Interface 的缩写 是一种高速的 全双工 同步的通信总线 并且在芯片的管脚上只占用四根线 节约了芯片的管脚 同时为PCB的布局上节省空间 提供方便 正是出于这种简单易用的特性
  • 为了买车,我用Python把某帝给搞采集了。

    上班摸鱼看了2个星期车评 还是一头雾水 选合资还是国产 发动机cvt好还是双离合好 艾瑞泽5 GT动力足 但腰线和前脸让人吐槽 真的可靠吗 国产选长安逸动还是吉利帝豪 标志408出来了 还有艾瑞泽8很漂亮 看会视频吧 同质化严重 讲来将去就
  • 基于51单片机的智能晾衣架的设计与实现(源码+论文)_kaic

    摘要 随着社会和市场的变化 我国经济的快速发展和房地产行业的快速扩张 使得装修家居行业飞速发展 在行业高速发展的同时 消费者家居智能化要求也在日益发展 随着科学技术的进步和电子技术的发展 单片机作为智能控制芯片 越来越多的应用到生活中的个各
  • Verilog实例-AMBA(AHB)协议

    目录 一 简介 1 1 AHB 1 2 signal list 1 3 Bus interconnection 总线互联 1 4 Overview of AMBA AHB operation 1 4 1 Basic transfer 1 4
  • ElasticSearch6.x 基于SpringBoot 实现ElasticSearch的统计查询

    AggregationUtil java 实现elasticsearch 搜索引擎针对指定索引的max 最大值 min 最小值 sum 合计统计 avg 平均值统计 stats 基本统计 extendedStats 高级统计 cardina
  • 常见的笔试题之mysql

    MYSQL篇 mysql版本 5 7 安装文件 mysql installer community 5 7 11 0 msi 1 写出复制表的sql语句 例如employ为原表名 copytb为目标表名 语句如下 1 create tabl
  • ajax定时器怎么写,js定时器怎么写?就是在特定时间执行某段程序

    js定时器怎么写 就是在特定时间执行某段程序 复制代码 代码如下 function var handler function var timer setInterval handler 1000 var clear function cle
  • golang运算与循环等

    一 golang运算符 1 算术运算符 相加 相减 相乘 相除 求余 自增 自减 2 关系运算符 等于 不等于 gt 大于 lt 小于 gt 大于等于 lt 小于等于 3 位运算符 按位与运算符 是双目运算符 其功能是参与运算的两数各对应的
  • tkinter实现页面切换

    tkinter是python标准库的GUI组件 对于一些小脚本 完全够用 但是如果是复杂的逻辑界面 当然是啊pyqt更胜一筹 笔者用过wxpython pysimplegui 代码写完了 在打包的时候都会遇到各种各样的问题 而用tkinte