话不多说,直接上代码:
from Tkinter import *
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT)
class App: //定义一个名为App 的类
def __init__(self, master):
frame = Frame(master)
frame.pack() //根据窗口里面的布局及组件的preferedSize来确定frame的最佳大小
self.check_var = BooleanVar() /*初始化函数中创建了一个名为check_var的成员变量,
该变量包含一个BooleanVar 类型的实例,为复选框
提供了变量选项。这保证了每当勾选复选框时,变量中
的值就会改变。command 选项会在改变发生时运行
update 命令*/
check = Checkbutton(frame, //Checkbutton是复选框,又称为多选按钮,可以表示两种状态
text='Pin 18', //显示文本内容
command=self.update, //指定Checkbutton的事件处理函数
variable=self.check_var, //控制变量,跟踪Checkbutton的状态,On(1),Off(0)
onvalue=True, //指定Checkbutton处于On状态时的值
offvalue=False) //指定Checkbutton处于Off状态时的值
check.grid(row=1)
def update(self):
GPIO.output(18, self.check_var.get())
root = Tk()
root.wm_title('on/off switch')
app = App(root)
root.geometry("300x50+0+0") //注意这里是小写字母'x',不是乘号
root.mainloop() //进入到事件循环,一旦检测到事件,就刷新组件