tkinter中如何使用复选框控制LED灯亮灭

tkinter中如何使用复选框控制LED灯亮灭

复选框控制LED


简介

        本文使用Python内置GUI库tkinter的Checkbutton组件来制作一个GUI,以控制arduino板子上多个LED灯的亮灭。

Checkbutton组件简介:

        Checkbutton又称为多选按钮,可以表示两种状态:On和Off,可以设置回调函数,每当点击此按钮时回调函数被调用,下图是一个简单的例子:

tkinter中如何使用复选框控制LED灯亮灭

GUI

tkinter中如何使用复选框控制LED灯亮灭

代码

但是该代码有一个问题,即无论是选中还是取消选中调用的都是同一个函数。下例中将演示如何让其在选中的时候做一件事,取消选中的时候做另一件事情,效果如下图。

tkinter中如何使用复选框控制LED灯亮灭

GUI

tkinter中如何使用复选框控制LED灯亮灭

Python代码

上例中主要的不同之处便是多了tkVar=IntVar()这行代码。

      IntVar()类是tkinter中定义的类,不同于Python内置的整数类,其是可以就地改变的。因为IntVar()是tkinter的自定义类,其会自动侦测Checkbutton()界面中的变量的变化(即在选中与不选中时会返回不同的值)。使用get()方法来获取IntVar()的变量值。

结合arduino的LED

基础知识已经介绍完毕,下面将结合arduino来制作最终的作品,先贴上电路图:

tkinter中如何使用复选框控制LED灯亮灭

电路图

代码如下:

tkinter中如何使用复选框控制LED灯亮灭

Python代码

tkinter中如何使用复选框控制LED灯亮灭

Python代码

tkinter中如何使用复选框控制LED灯亮灭

运行结果