Tkinter画布:Itemconfig无法升级

2024-05-13 09:36:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须更改用画布项创建的矩形的颜色。 我看了其他问题,但没有找到问题的答案。你知道吗

我正在用USB声卡录制麦克风。一旦唱片开始播放,我想放一个红灯,一旦唱片结束,再放回绿灯。你知道吗

代码如下:

你知道吗主.py地址:

import tkinter as tk
from GUI import Demo1

def main(): 
    root = tk.Tk()
    app = Demo1(root)
    root.mainloop()

if __name__ == '__main__':
    main()

你知道吗图形用户界面.py地址:

class Demo1:
  def __init__(self, master):
        #Set geometry and title
        self.master = master
        self.master.title("DAQ - Sound Pressure Level")
        self.master.geometry("480x320")


        # Canvas zone
        self.canvas = tk.Canvas(self.master,width=40,height=20,background='white')
        self.canvas.grid(row=0,column=3)
        self.frame = Frame(self.master)
        self.frame.grid(row=0,column=3)
        self.rect1 = self.canvas.create_rectangle(0,0,40,20, fill="green")
        #canvas.bind(func=changecolor(canvas))



        #set buttons
        self.quitbutton = tk.Button(self.master, text = 'Quit', width = 10, command = self.close_windows)
        self.quitbutton.grid(column=1,row=0)
        self.startbutton = tk.Button(self.master, text = 'Start', width = 10, command = lambda: self.startacquisition())
        self.startbutton.grid(column=0,row=0)
        #self.zerobutton = tk.Button(self.master,text = 'Zero', width = 10, command = lambda: self.zerocalibration())
        #self.zerobutton.grid(column=2,row=0)
        #self.livebutton = tk.Button(self.master,text="Live/Stop", command=lambda: self.gui_handler, bg="red", fg="white")
        #self.livebutton.grid(column=2,row=0)


  def startacquisition(self):
        chunk = 8192  # Record in chunks 
        print("Changing rect color to red")
        self.canvas.itemconfig(self.rect1,fill='red')
        p = pyaudio.PyAudio()  # Create an interface to PortAudio
        [....recording stuff...]
        [...preparing plot...]
        plt.show()
        self.canvas.itemconfig(self.rect1,fill='green')


所以当我按下启动按钮时,它调用startaquisition(self)函数。发生的是,直到我关闭所有的情节,颜色才升级。你知道吗

为什么?你知道吗

谢谢你的帮助。你知道吗


Tags: textselfmastermaindefcolumnbuttonroot