В Python Idle Tkinter Environment пытается построить одно уравнение на фигуре, а затем при нажатии кнопки построить другое уравнение - PullRequest
0 голосов
/ 26 марта 2020

Я пишу Tkinter GUI в Python в режиме ожидания, и при запуске моего GUI я хочу, чтобы на первой странице отображалась фигура с жестко закодированной формой волны, показанной на рисунке. Когда пользователь GUI нажимает кнопку на странице, я, по сути, хочу построить другое уравнение. При создании кнопки, если у меня нет лямбды в разделе команд Tkinter.Button, тогда уравнение нажатия кнопки заполняет график. Если в секции команд у меня нет лямбды, то нажатие на кнопку ничего не меняет на рисунке. Пожалуйста, помогите мне разобраться, как заставить сюжет меняться в зависимости от нажатия кнопки.

class FirstPage(tk.Frame):
    def __init__(self,parent,controller):
        tk.Frame.__init__(self,parent)
        self.controller = controller
        ##Label For this page
        label = tk.Label(self,text = 'Data Input',font = TITLE_FONT)
        label.pack(side = 'top',anchor = 'w',padx = 10,pady= 1)

        ##Button to go to next page
        button1 = tk.Button(self, text="Go to FFT Page",
                            command=lambda: controller.show_frame("SecondPage"))
        button1.pack(side = 'left', anchor = 'n', padx = 10,pady = 10)

        ##Adding figure that will show raw data
        f_front = Figure(figsize = (12.92, 4.3), dpi = 80)
        FirstPage.a = f_front.add_subplot(111)
        canvas_f_front = FigureCanvasTkAgg(f_front,self)
        canvas_f_front.get_tk_widget().place(relx = 0.02, rely = 0.55)
        FirstPage.a.set_title('Raw Wav File',fontsize = 16)
        FirstPage.a.set_xlabel('Samples',fontsize = 14)
        FirstPage.a.set_ylabel('Amplitude',fontsize = 14)
        self.Raw_Plotting(FirstPage.a)


        button2 = tk.Button(self, text="Go to FFT Page",
                       command = lambda: self.File_Button_Push(FirstPage.a))
        button2.pack(side = 'right', anchor = 'n', padx = 10,pady = 10)

    def Raw_Plotting(self, subplot):
        n = np.arange(0,10000)
        tS = 1/44100;
        x = 1*np.cos(2*np.pi*100*np.dot(tS,n))+2*np.cos(2*np.pi*90*np.dot(tS,n))

        subplot.plot(x)

    def File_Button_Push(self, subplot):
        n = np.arange(0,10000)
        x = n * 1

        subplot.plot(x)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...