Как отредактировать дисплей, не перепутав ни один из методов? - PullRequest
0 голосов
/ 29 октября 2019

Я относительно новичок в Python и TKINTER. Я хотел спросить, есть ли способ изменить отображение этого кода, потому что каждый раз, когда я пытаюсь использовать «липкий» или строку, он показывает только одно из полей ввода. приветствуется любая помощь.

Попытка изменить код с помощью столбца, строки, закрепления, но безрезультатно.

import sys
from tkinter import *
import matplotlib
from matplotlib.backends.backend_tkagg import (FigureCanvasTkAgg, NavigationToolbar2Tk)
from matplotlib.figure import Figure
import numpy as np
import matplotlib.animation as animation 

fig=matplotlib.figure.Figure()
class GraphPlotter:

    def __init__(self, parent):
        # remember parent
        self.parent = parent

    def graphdis(self):

        f = Figure(figsize=(5,5))
        a = f.add_subplot(111)
        x=np.arange (0, (4*np.pi), .1)
        def animate(i):
                line.set_ydata(np.sin(fr*(x+i/10.0)))
                return line, 
        ani = animation.FuncAnimation(fig, animate, np.arange(1, 200), interval=25, blit=False)
        canvas = FigureCanvasTkAgg(f, self.parent) 
        canvas.draw()
        canvas.get_tk_widget().grid()


class GUIWindow:

    def __init__(self):
        root = Tk()
        root.geometry('1200x650')

        # ****** GUI buttons *********
        label = Label(root,text="SHM Simulation").grid(column=0, row=0)
        fig=matplotlib.figure.Figure()

        canvas = FigureCanvasTkAgg(fig, master=root) 
        canvas.get_tk_widget().grid(column=0,row=2, sticky=W+N)

        entry1= Entry(root, text='Frequency') 
        canvas.get_tk_widget().grid(row=1,column=0, sticky=W+N) 

        entry2= Entry(root, text='Duration') 
        canvas.get_tk_widget().grid(row=0,column=0, sticky=W+N) 
        entry2.grid()

        def callback():
            fr=int(entry1.get())
            t=float(entry2.get()) 
            p=pyaudio.Pyaudio 
            fs=44100 
            volume=.7 
            samples=(np.sin(fr*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) 
        b1=Button(root, text='OK', command= callback).grid(sticky=N+W)



        # use `root` as parent for canvas
        graphGrab = GraphPlotter(root)

        graphGrab.graphdis()

        root.mainloop()

GUIWindow()

Нет сообщений об ошибках, просто выглядит как беспорядок.

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