Python tkinter+MATLAB入门&实践(5)为button添加单击时的执行②

为button添加单击时的执行②

1.目的

有时,我们想实现 点击多个按钮后能出现同一反应,但是又想在这个新出现的反应中,显示出我们是点击某个按钮才有反应的。

这时可以使用“lambda表达式”,lambda:  function('a')。

2.多按钮执行相同的工作,但小细节不同

2.1 在界面上添加多个按钮(second_interface.py)

from tkinter import *

def create_1():
    #mainwindow.destroy() #主界面消失!!!尚未解决!!!望指点
    secondwindow = Tk() #第二界面出现,照旧设置。
    secondwindow.title("软件第二界面")
    secondwindow.geometry("1000x600")
    secondwindow.configure(bg="AliceBlue")
    secondwindow.resizable(False, False)

    bt_se_1 = Button(secondwindow, text='爱迪奥特曼', font=('微软雅黑 20 bold'), height=1, width=10)
    bt_se_1.pack(anchor=W)
    bt_se_2 = Button(secondwindow, text='迪迦奥特曼', font=('微软雅黑 20 bold'), height=1, width=10)
    bt_se_2.pack(anchor=W)
    bt_se_3 = Button(secondwindow, text='赛文奥特曼', font=('微软雅黑 20 bold'), height=1, width=10)
    bt_se_3.pack(anchor=W)
    bt_se_4 = Button(secondwindow, text='泰罗奥特曼', font=('微软雅黑 20 bold'), height=1, width=10)
    bt_se_4.pack(anchor=W)

2.2 设置点击按钮之后想出现的新界面(third_interface.py)

from tkinter import *

def create_2():
    # secondwindow.destroy() #第二界面消失!!!尚未解决!!!望指点
    thirdwindow = Tk()  # 第三界面出现,照旧设置。
    thirdwindow.title("软件第三界面")
    thirdwindow.geometry("1000x600")
    thirdwindow.configure(bg="AliceBlue")
    thirdwindow.resizable(False, False)

    #标签显示该界面是点击了哪个按钮来的
    la_th_1 = Label(thirdwindow,text="您现在将在**奥特曼\n的指导进行相关操作~",font=('微软雅黑 15 bold'))
    la_th_1.pack(anchor=W)

2.3 使用lambda表达式将两个界面实现预期功能

2.3.1 在按钮调用语句中,添加lambda表达式(second_interface.py)

from tkinter import *

def create_1():
    #mainwindow.destroy() #主界面消失!!!尚未解决!!!望指点
    secondwindow = Tk() #第二界面出现,照旧设置。
    secondwindow.title("软件第二界面")
    secondwindow.geometry("1000x600")
    secondwindow.configure(bg="AliceBlue")
    secondwindow.resizable(False, False)

    #在按钮调用语句中,添加lambda表达式。
    from third_interface import create_2

    bt_se_1 = Button(secondwindow, text='爱迪奥特曼', font=('微软雅黑 20 bold'), command=lambda: create_2('a'), height=1, width=10)
    bt_se_1.pack(anchor=W)
    bt_se_2 = Button(secondwindow, text='迪迦奥特曼', font=('微软雅黑 20 bold'), command=lambda: create_2('b'),height=1, width=10)
    bt_se_2.pack(anchor=W)
    bt_se_3 = Button(secondwindow, text='赛文奥特曼', font=('微软雅黑 20 bold'), command=lambda: create_2('c'),height=1, width=10)
    bt_se_3.pack(anchor=W)
    bt_se_4 = Button(secondwindow, text='泰罗奥特曼', font=('微软雅黑 20 bold'), command=lambda: create_2('d'),height=1, width=10)
    bt_se_4.pack(anchor=W)

2.3.2 在新界面中,添加细节不同的条件(third_interface.py)

from tkinter import *

def create_2(x):
    # secondwindow.destroy() #第二界面消失!!!尚未解决!!!望指点
    thirdwindow = Tk()  # 第三界面出现,照旧设置。
    thirdwindow.title("软件第三界面")
    thirdwindow.geometry("1000x600")
    thirdwindow.configure(bg="AliceBlue")
    thirdwindow.resizable(False, False)


    # 标签显示该界面是点击了哪个按钮来的
    if x == 'a':
        la_th_1 = Label(thirdwindow,text="您现在将在爱迪奥特曼\n的指导下进行相关操作~",font=('微软雅黑 15 bold'))
        la_th_1.pack(anchor=W)
    elif x == 'b':
        la_th_1 = Label(thirdwindow, text="您现在将在迪迦奥特曼\n的指导下进行相关操作~", font=('微软雅黑 15 bold'))
        la_th_1.pack(anchor=W)
    elif x == 'c':
        la_th_1 = Label(thirdwindow, text="您现在将在赛文奥特曼\n的指导下进行相关操作~", font=('微软雅黑 15 bold'))
        la_th_1.pack(anchor=W)
    elif x == 'd':
        la_th_1 = Label(thirdwindow, text="您现在将在泰罗奥特曼\n的指导下进行相关操作~", font=('微软雅黑 15 bold'))
        la_th_1.pack(anchor=W)

注意:third_interface.py中的def create_2(x)的括号里有“x”,且两个.py文件里的abcd是字符串,要加“ ”或者' '。

\n是换行的意思。

2.4 完成

有话说:新人,发布文章是为了记录和学习。有相同需求的可以借鉴学习,有大佬希望指点一二。

Python tkinter +MATLAB 入门学习&实践操作 是一个系列,单个看也成立,一起看更好。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值