Мой Tkinter не позволит мне нажать кнопку, которая покажет синусоидальную волну - PullRequest
1 голос
/ 01 октября 2019

Этот код не будет работать, и я понятия не имею, почему. Я довольно новичок в программировании и использую Mac, поэтому я немного знаю. Я читал, что это может быть backends of matplotlib, но все остальные статьи были неубедительными. Я хотел бы отобразить волну в графическом интерфейсе и хотел бы иметь возможность обновлять ее новыми данными.

Я пытался установить и удалить matplotlib, скачал Quartz11

import tkinter as tk
from tkinter import Frame, Label, Entry, Button
import pyaudio
from matplotlib.figure import Figure
import numpy as np
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
import matplotlib.pyplot as plt
import matplotlib. animation as animation
def insert_number():
  f=int(entry1.get())
  t=float(entry2.get())
  samples=(np.sin((f*2*np.pi*np.arange(fs*t)/(fs)).astype(np.float32)))
  stream=p.open(format=pyaudio.paFloat32,
          channels=1,
          rate=fs,
          output=True)
  stream.write(volume*samples)
  fig, ax = plt.subplots()
  def dopp():
      x = np.arange(0, 2*np.pi, 0.01)
      line, = ax.plot(x, np.sin((x)/10))
  def animate(i):
    line.set_ydata(np.sin(f(x + i/10.0)))
    return line,
 def init():
    line.set_ydata(np.ma.array(x, mask=True))
    return line,
 ani = animation.FuncAnimation(fig, animate, np.arange(1, 200),   init_func=init,
                             interval=25, blit=True)
  plt.show()
canvas = FigureCanvasTkAgg(fig, master=self.window)
canvas.get_tk_widget().pack()
canvas.draw()

start= mclass (window)
window.mainloop()
tk.mainloop()
 button2 = tk.Button (root, text='Click to see Waves ',command=insert_number)
canvas1.create_window(97, 270, window=button2)`

Нетсообщения об ошибках, но я знаю, что-то не так. Я ценю любую помощь. Спасибо!

1 Ответ

0 голосов
/ 17 октября 2019

Итак, я нашел очень похожий вопрос относительно того, что я спрашивал, и я думаю, что я должен определить «PlotWindow», как окно, которое имеет математику и может просто передавать данные для отображения ... Если кто-томог бы дать мне представление о том, как работает эта функция, или общее представление о том, как она будет выглядеть, это очень помогло бы, я не думаю, что мне это хорошо знакомо. Спасибо всем, кто ответил на мой оригинальный пост.

...