m0_68373454 2022-03-19 20:42 采纳率: 100%
浏览 26
已结题

tk怎么创建按钮并且让这个按钮起作用啊

比如一个软件界面点击下一页按钮可以跳转到下一个窗口,tk可以实现这个功能吗
能不能就是每个界面单独写一个py文件 然后用按钮实现这两个界面的先后显示啊,有没有人,说一下啊

  • 写回答

3条回答 默认 最新

  • 小康2022 Python领域新星创作者 2022-03-19 22:50
    关注

    【有帮助请采纳】
    【有帮助请采纳】
    【有帮助请采纳】

    你是要在一个窗口中通过点击按钮显示不同界面还是要在点击按钮后打开另一个窗口呢?
    你这没有说清楚啊(那我只能两个都告诉你了哦)
    第一种:同一窗口下跳转界面

    from tkinter import *#引入模块
    
    root = Tk()#创建窗口
    root.geometry('200x300+300+100')#设置窗口大小及位置
    frame1 = Frame(root,bg='lightyellow')
    frame1.place(width=200,height=300)
    Button(frame1,text='下一页',font=('华文新魏',20),command=lambda:change_page()).place(width=100,height=40,x=50,y=100)#创建一个按钮
    
    def change_page():#换页
        frame2 = Frame(root,bg='lightgreen')
        Button(frame2,text='返回',font=('华文新魏',20),command=frame2.destroy).place(width=100,height=40,x=50,y=100)#创建一个按钮
        frame2.place(width=200,height=300)
    
    root.mainloop()#进入消息事件循环
    

    第一种的效果:
    【点击“下一页”就会跳转到第二个界面(其实是创建第二个页面并覆盖第一个),点击“返回”就会跳转回来(其实是删除第二个页面)】

    img


    img

    第二种:不同窗口间的跳转
    【就是把第二个Frame控件改成Toplevel控件,然后删去place就行】

    from tkinter import *#引入模块
    
    root = Tk()#创建窗口
    root.geometry('200x300+300+100')#设置窗口大小及位置
    frame1 = Frame(root,bg='lightyellow')
    frame1.place(width=200,height=300)
    Button(frame1,text='下一页',font=('华文新魏',20),command=lambda:change_page()).place(width=100,height=40,x=50,y=100)#创建一个按钮
    
    def change_page():#换页
        frame2 = Toplevel(root,bg='lightgreen')
        Button(frame2,text='返回',font=('华文新魏',20),command=frame2.destroy).place(width=100,height=40,x=50,y=100)#创建一个按钮
    
    root.mainloop()#进入消息事件循环
    

    第二种效果:

    img

    【有帮助请采纳】
    【有帮助请采纳】
    【有帮助请采纳】

    如果你想了解更多,可以到这个地方去寻找你的答案(我的Tkinter免费专栏,持续更新中)
    【可以做到类似于手机滑屏的效果,滑动动画由sin函数进行优化,使之看起来流畅】
    https://blog.csdn.net/weixin_62651706/category_11600888.html?spm=1001.2014.3001.5482

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月30日
  • 已采纳回答 3月22日
  • 创建了问题 3月19日

悬赏问题

  • ¥15 怎么改成循环输入删除(语言-c语言)
  • ¥15 安卓C读取/dev/fastpipe屏幕像素数据
  • ¥15 pyqt5tools安装失败
  • ¥15 mmdetection
  • ¥15 nginx代理报502的错误
  • ¥100 当AWR1843发送完设置的固定帧后,如何使其再发送第一次的帧
  • ¥15 图示五个参数的模型校正是用什么方法做出来的。如何建立其他模型
  • ¥100 描述一下元器件的基本功能,pcba板的基本原理
  • ¥15 STM32无法向设备写入固件
  • ¥15 使用ESP8266连接阿里云出现问题