【发布时间】:2016-08-28 13:23:52
【问题描述】:
我想切换一个按钮并使用 tkinter 在标签上显示其更改。
如果我按下按钮,它会在标签上显示“开启”,当我再次按下时,它会在标签上显示“关闭”
所以我尝试了这些代码,如果我尝试了错误的代码,请帮助我使用 tkinter 编写正确的代码。
我在组合这段代码时遇到了问题
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(22,GPIO.IN,up_down=GPIO.PUD_UP)
while(1):
if GPIO.input(22)==1:
if bs == False :
x.set("on")
bs=True
sleep(0.5)
else:
x.set("off")
bs=False
sleep(0.5)
这没问题,但我想将它连接到 GUI 标签上以打开或关闭打印。
这里是 tkinter 代码
import tkinter.*
root = tk()
x = StringVar()
s=Label(root,textvariable=x)
s.grid(column=0,row=0)
root.mainloop()
当我尝试组合它时,我会变成这样
from Tkinter import *
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(7,GPIO.IN)
b=False
def check_button1():
if GPIO.input(7)== 1:
if b == False :
labelText1.set("on")
print"on"
b=True
time.sleep(0.5)
else:
labelText1.set("off")
print"off"
b=False
time.sleep(0.5)
mamdouh.after(10,check_button1)
mamdouh = Tk()
labelText1 = StringVar()
x1 = Label(mamdouh,textvariable=labelText1)
x1.config(font=('Helvetica',25,'bold'))
x1.grid(row=0,column=0)
mamdouh.title("mamdouh")
mamdouh.geometry('1200x700')
mamdouh.after(10,check_button1)
mamdouh.mainloop()
但它不起作用,每次我按下按钮时都会保持空白,如果效果很好,我会放 17 个按钮
我认为问题在于将这个 if 语句放在正确的位置并将 b 变量放在正确的位置,我认为这个 if 语句和 tkinter 之间也存在问题,因为我尝试了这个代码,它工作得很好但是它没有切换按钮,所以我想改变它,让我们也在这里添加这段代码:
from Tkinter import *
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(7,GPIO.IN)
def check_button1():
if(GPIO.input(7) == GPIO.LOW):
labelText1.set("on")
else:
labelText1.set("off")
mamdouh.after(10,check_button1)
mamdouh = Tk()
labelText1 = StringVar()
x1 = Label(mamdouh,textvariable=labelText1)
x1.config(font=('Helvetica',25,'bold'))
x1.grid(row=0,column=0)
mamdouh.title("mamdouh")
mamdouh.geometry('1200x700')
mamdouh.after(10,check_button1)
mamdouh.mainloop()
那么我怎样才能在标签上制作这个切换按钮呢?
【问题讨论】:
-
问题解决了吗?我可能有答案。
-
我没有找到任何解决方案。希望大家给我答案
-
好的。这需要一段时间,我目前正在处理其他事情。
-
好吧,慢慢来
标签: python python-2.7 tkinter raspberry-pi raspberry-pi2