Graph über Funktion in interface anzeigen lassen

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
möppi
User
Beiträge: 39
Registriert: Samstag 29. März 2014, 09:18

Hi,

Ich bin ziemlich am verzweifeln, weil ich seit Tagen immer noch nicht herausgefunden habe, wie man einen Graphen erzeugten Oberfläche über eine Funktion anzeigen lassen kann (Ich verwende den Qt-Designer). Ich habe müheseelig mehrere Plot-Routinen geschrieben, die scheinbar voll für den Arsch sind, weil ich die offensichtlich nicht verwenden kann. Um einen Plot zu erzeugen könnte man z.B schreiben:

Code: Alles auswählen

import matplotlib.pyplot as plt

def main():
    
    application = QApplication(sys.argv)
    frame = loadUi('interace.ui')
    
    def plot_me():  
 
        x=[1,2,3]
        y=[1,4,9] 

        mw=frame.mplwidget #aus der Klasse MatplotlibWidgets
        mw.axes.plot(x,y) #hier wuerde ich gerne lieber eine Plot-Funktion aus einem anderen Skript (plots.py) aufrufen
        mw.figure.draw()
        
    frame.pushButton.clicked.connect(plot_me)
    frame.show()
    sys.exit(application.exec_())
 
if __name__ == '__main__':
    main()
Dieser Code funktioniert auch. Nun habe ich ein Skript von verschiedenen Funktionen geschrieben. Um das Prinzip zu verdeutlichen betrachten wir mal:

Code: Alles auswählen

#Skriptname plots.py

#Variante 1:
def f1(x,y):
     plt.plot(x,y)
     plt.show()

#Variante2:
def f2(x,y):   
    f=Figure()
    a=f.add_subplot(111)
    a.plot(x2,y2)
    return f
Es muss doch irgendeine Möglichkeit geben, meine Funktionen zu verwenden. Ich habe schon alles erdenkliche ausprobiert und komme einfach nicht weiter. In Tkinter hat es sogar funktioniert Variante2 zu integrieren. In Qt weiß ich leider nicht, wie es funktioniert.

Ich wäre euch dankbar für eure Hilfe.
Antworten