ich hoffe ich bin hier an der richtigen stelle.
ich wuerde gerne eine pyqt/qwt applikation bauen (bisher leider null erfahrung mit qt...). Diese per designer erstellen, testen mit den qwt examples.
Die pyqwt beispiele funktionierern, qwt widgets sind auch sichtbar im Designer.
wie kann ich ein beispiele (zB SimplePlot.py) in einem widget erscheinen lassen, dass ich im designer gebaut hab?
folgende Dateien/Klassen hab ich:
SimpleDemo.py :
Code: Alles auswählen
class SimpleData(Qwt.QwtData):
def __init__(self, function, size):
Im Konstruktor von SimplePlot werden alle eigenschaften dieses plots gesetzt und fertig.
Code: Alles auswählen
class SimplePlot(Qwt.QwtPlot):
def __init__(self, *args):
Qwt.QwtPlot.__init__(self, *args)
...
qwt_form_ui.py: (gebaut aus dem designer):
(hier taucht nun ein widget QwtPlot namens "qwtPlotWindow" in das der plot aus dem Demo dargestellt werden soll)
Code: Alles auswählen
class Ui_form_qwtplot(object):
form_qwtplot.setObjectName("form_qwtplot")
form_qwtplot.resize(468, 300)
self.qwtPlotwindow = QwtPlot(form_qwtplot)
self.qwtPlotwindow.setGeometry(QtCore.QRect(40, 30, 400, 200))
self.qwtPlotwindow.setObjectName("qwtPlotwindow")
....
my_qwt_app.py:
Code: Alles auswählen
import qwt_form_ui
from qwt_form_ui import Ui_form_qwtplot
...
class SimpleData(Qwt.QwtData):
... (wie im Beispiel)
class SimplePlot(Qwt.QwtPlot):
... (wie im Beispiel)
class MyQwtPlotter(Qt.QMainWindow,Ui_form_qwtplot): # wird also abgeleitet und angepasst aus dem per designer ertelltem formular
def __init__(self, parent = None):
myplot = SimplePlot()
self.qwtPlotWindow = myplot
"""
wie unterhalten sich diese widgets?: ist denn die Vererbung hier richtig? wie verbinde ich denn SimplePlot widget mit self.qwtPlotWindow? Muss ich in der Klasse SimplePlot ein Signal einfuerhen und dann im MyQwtPlotter ein connect() bauen? Oder gibt es vom qwtPlotWindow schon so ein signal wie changed()? Wie verbinde die das qwt widget in MyQwtPlotter richtig mit SimplePlot ?
"""
#hauptprogramm
Code: Alles auswählen
def make():
demo = MyQwtPlotter()
demo.show()
return demo
def main(args):
app = Qt.QApplication(args)
demo = make()
sys.exit(app.exec_())
if __name__ == '__main__':
main(sys.argv)
Danke im voraus fuers lesen und die Antworten
dirk