Esempio n. 1
0
    def __init__(self):
        QtGui.QMainWindow.__init__(self)
        self.setupUi(self)
        self.setFixedSize(self.size())

        self.fit = None
        """ :type: Module.Abstrakt.Fit.Fit """
        self.gui_raster_laden = GuiRasterLaden(self)
        self.gui_spektr_laden = GuiSpektrLaden(self)

        # TODO nicht mehr nötig:
        self.plots = []  # Die Plots werden durch ihren Konstruktor automatisch dieser Liste hinzugefügt

        # Raster-Plots
        self.plt_raster_resonanzkurve = RasterResonanz(
            gui=self,
            titel=gui_resonanzkurve[lang],
            beschriftung=Achsenbeschriftung(x=achse_freq[lang], y=achse_amp[lang])
        )
        self.plt_raster_phase_schnitt = Schnitt(
            gui=self,
            titel=gui_phase_schnitt[lang],
            beschriftung=Achsenbeschriftung(x=achse_punkt_x[lang], y=achse_phase[lang])
        )
        self.plt_raster_amp_schnitt = Schnitt(
            gui=self,
            titel=gui_amp_schnitt[lang],
            beschriftung=Achsenbeschriftung(x=achse_punkt_x[lang], y=achse_amp[lang])
        )
        self.plt_raster_freq_schnitt = Schnitt(
            gui=self,
            titel=gui_freq_schnitt[lang],
            beschriftung=Achsenbeschriftung(x=achse_punkt_x[lang], y=achse_freq[lang])
        )
        self.plt_raster_phase = Raster(
            gui=self,
            resonanzkurve=self.plt_raster_resonanzkurve,
            titel=gui_phase[lang],
            beschriftung=Achsenbeschriftung(x=achse_punkt_x[lang], y=achse_punkt_y[lang], farbe=achse_phase[lang])
        )
        self.plt_raster_resfreq = Raster(
            gui=self,
            resonanzkurve=self.plt_raster_resonanzkurve,
            titel=gui_resfreq[lang],
            beschriftung=Achsenbeschriftung(x=achse_punkt_x[lang], y=achse_punkt_y[lang], farbe=achse_freq[lang])
        )
        self.plt_raster_amplitude = Raster(
            gui=self,
            resonanzkurve=self.plt_raster_resonanzkurve,
            titel=gui_amplitude[lang],
            beschriftung=Achsenbeschriftung(x=achse_punkt_x[lang], y=achse_punkt_y[lang], farbe=achse_amp[lang])
        )
        self.plt_raster_qfaktor = Raster(
            gui=self,
            resonanzkurve=self.plt_raster_resonanzkurve,
            titel=gui_qfaktor[lang],
            beschriftung=Achsenbeschriftung(x=achse_punkt_x[lang], y=achse_punkt_y[lang])
        )

        # Spektroskopie-Plots
        self.plt_spektr_resonanzkurve = SpektrResonanz(
            gui=self,
            titel=gui_resonanzkurve[lang],
            beschriftung=Achsenbeschriftung(x=achse_freq[lang], y=achse_amp[lang])
        )

        self.action_raster.triggered.connect(self.raster_laden)
        self.action_spektroskopie.triggered.connect(self.spektr_laden)
        self.action_speichern.triggered.connect(self.speichern)
        self.action_resonanzkurve.triggered.connect(self.plt_raster_resonanzkurve.zeige)
        self.action_phase_schnitt.triggered.connect(self.plt_raster_phase_schnitt.zeige)
        self.action_amp_schnitt.triggered.connect(self.plt_raster_amp_schnitt.zeige)
        self.action_resfreq.triggered.connect(self.plt_raster_resfreq.zeige)
        self.action_amplitude.triggered.connect(self.plt_raster_amplitude.zeige)
        self.action_phase.triggered.connect(self.plt_raster_phase.zeige)
        self.action_qfaktor.triggered.connect(self.plt_raster_qfaktor.zeige)
        self.action_alles.triggered.connect(self.zeige_alles)
        self.action_aktualisieren.triggered.connect(self.aktualisieren)
        self.action_anregung.triggered.connect(self.plt_spektr_resonanzkurve.zeige)

        # TODO:
        self.action_spektr_amp.setEnabled(False)
        self.action_spektr_freq.setEnabled(False)
        self.action_spektr_phase.setEnabled(False)
Esempio n. 2
0
class Gui(QtGui.QMainWindow, Ui_Gui):
    """ Menüfenster mit Rohdatenanzeige """
    def __init__(self):
        QtGui.QMainWindow.__init__(self)
        self.setupUi(self)
        self.setFixedSize(self.size())

        self.fit = None
        """ :type: Module.Abstrakt.Fit.Fit """
        self.gui_raster_laden = GuiRasterLaden(self)
        self.gui_spektr_laden = GuiSpektrLaden(self)

        # TODO nicht mehr nötig:
        self.plots = []  # Die Plots werden durch ihren Konstruktor automatisch dieser Liste hinzugefügt

        # Raster-Plots
        self.plt_raster_resonanzkurve = RasterResonanz(
            gui=self,
            titel=gui_resonanzkurve[lang],
            beschriftung=Achsenbeschriftung(x=achse_freq[lang], y=achse_amp[lang])
        )
        self.plt_raster_phase_schnitt = Schnitt(
            gui=self,
            titel=gui_phase_schnitt[lang],
            beschriftung=Achsenbeschriftung(x=achse_punkt_x[lang], y=achse_phase[lang])
        )
        self.plt_raster_amp_schnitt = Schnitt(
            gui=self,
            titel=gui_amp_schnitt[lang],
            beschriftung=Achsenbeschriftung(x=achse_punkt_x[lang], y=achse_amp[lang])
        )
        self.plt_raster_freq_schnitt = Schnitt(
            gui=self,
            titel=gui_freq_schnitt[lang],
            beschriftung=Achsenbeschriftung(x=achse_punkt_x[lang], y=achse_freq[lang])
        )
        self.plt_raster_phase = Raster(
            gui=self,
            resonanzkurve=self.plt_raster_resonanzkurve,
            titel=gui_phase[lang],
            beschriftung=Achsenbeschriftung(x=achse_punkt_x[lang], y=achse_punkt_y[lang], farbe=achse_phase[lang])
        )
        self.plt_raster_resfreq = Raster(
            gui=self,
            resonanzkurve=self.plt_raster_resonanzkurve,
            titel=gui_resfreq[lang],
            beschriftung=Achsenbeschriftung(x=achse_punkt_x[lang], y=achse_punkt_y[lang], farbe=achse_freq[lang])
        )
        self.plt_raster_amplitude = Raster(
            gui=self,
            resonanzkurve=self.plt_raster_resonanzkurve,
            titel=gui_amplitude[lang],
            beschriftung=Achsenbeschriftung(x=achse_punkt_x[lang], y=achse_punkt_y[lang], farbe=achse_amp[lang])
        )
        self.plt_raster_qfaktor = Raster(
            gui=self,
            resonanzkurve=self.plt_raster_resonanzkurve,
            titel=gui_qfaktor[lang],
            beschriftung=Achsenbeschriftung(x=achse_punkt_x[lang], y=achse_punkt_y[lang])
        )

        # Spektroskopie-Plots
        self.plt_spektr_resonanzkurve = SpektrResonanz(
            gui=self,
            titel=gui_resonanzkurve[lang],
            beschriftung=Achsenbeschriftung(x=achse_freq[lang], y=achse_amp[lang])
        )

        self.action_raster.triggered.connect(self.raster_laden)
        self.action_spektroskopie.triggered.connect(self.spektr_laden)
        self.action_speichern.triggered.connect(self.speichern)
        self.action_resonanzkurve.triggered.connect(self.plt_raster_resonanzkurve.zeige)
        self.action_phase_schnitt.triggered.connect(self.plt_raster_phase_schnitt.zeige)
        self.action_amp_schnitt.triggered.connect(self.plt_raster_amp_schnitt.zeige)
        self.action_resfreq.triggered.connect(self.plt_raster_resfreq.zeige)
        self.action_amplitude.triggered.connect(self.plt_raster_amplitude.zeige)
        self.action_phase.triggered.connect(self.plt_raster_phase.zeige)
        self.action_qfaktor.triggered.connect(self.plt_raster_qfaktor.zeige)
        self.action_alles.triggered.connect(self.zeige_alles)
        self.action_aktualisieren.triggered.connect(self.aktualisieren)
        self.action_anregung.triggered.connect(self.plt_spektr_resonanzkurve.zeige)

        # TODO:
        self.action_spektr_amp.setEnabled(False)
        self.action_spektr_freq.setEnabled(False)
        self.action_spektr_phase.setEnabled(False)

    def retranslateUi(self, ui):
        """
        :type ui: QtGui.QMainWindow
        """
        ui.setWindowTitle(gui_titel[lang])
        self.label_amplitude.setText(gui_amplitude[lang])
        self.label_phase.setText(gui_phase[lang])
        self.menu_auswertung.setTitle(gui_auswertung[lang])
        self.menu_raster.setTitle(gui_raster[lang])
        self.menu_spektroskopie.setTitle(gui_spektroskopie[lang])
        self.action_spektroskopie.setText(gui_lade_spektroskopie[lang])
        self.action_messparameter.setText(gui_messparameter[lang])
        self.action_raster.setText(gui_lade_raster[lang])
        self.action_speichern.setText(gui_speichern[lang])
        self.action_resonanzkurve.setText(gui_resonanzkurve[lang])
        self.action_phase_schnitt.setText(gui_phase_schnitt[lang])
        self.action_amp_schnitt.setText(gui_amp_schnitt[lang])
        self.action_resfreq.setText(gui_resfreq[lang])
        self.action_amplitude.setText(gui_amplitude[lang])
        self.action_phase.setText(gui_phase[lang])
        self.action_qfaktor.setText(gui_qfaktor[lang])
        self.action_alles.setText(gui_alles[lang])
        self.action_anregung.setText(gui_anregung[lang])
        self.action_spektr_amp.setText(gui_amplitude[lang])
        self.action_spektr_freq.setText(gui_resfreq[lang])
        self.action_spektr_phase.setText(gui_phase[lang])

    def closeEvent(self, event):
        """
        :type event: PyQt4.QtCore.QEvent
        """
        sys.exit(0)

    def importiert(self):
        #  Name der Messung anzeigen
        self.label_name.setText(os.path.basename(self.fit.par.verzeichnis))

        #  Dateiliste befüllen
        def model(namen):
            item_model = QtGui.QStandardItemModel()
            for name in namen:
                item_model.appendRow(QtGui.QStandardItem(name))
            return item_model
        self.list_amplitude.setModel(model(self.fit.messwerte.amplitude_namen))
        self.list_phase.setModel(model(self.fit.messwerte.phase_namen))

        # Resonanzplots bereitstellen
        if self.fit.__class__ == RasterFit:
            self.plt_raster_resonanzkurve.set_werte(self.fit.messwerte.amplitude)
            self.menu_raster.setEnabled(True)
            self.menu_spektroskopie.setEnabled(False)
        else:
            self.plt_spektr_resonanzkurve.set_werte(self.fit.messwerte)
            self.menu_raster.setEnabled(False)
            self.menu_spektroskopie.setEnabled(True)

    def raster_laden(self):
        self.gui_raster_laden.show()
        self.gui_raster_laden.raise_()

    def spektr_laden(self):
        self.gui_spektr_laden.show()
        self.gui_spektr_laden.raise_()

    def speichern(self):
        wohin = QtGui.QFileDialog().getSaveFileName(self, rf_ordner[lang], self.fit.par.verzeichnis)
        self.fit.speichern(str(wohin))
        hinweis(self, gui_gespeichert[lang] + wohin)

    def raster_fit_fertig(self):
        self.action_speichern.setEnabled(True)
        self.menu_raster.setEnabled(True)
        erg = self.fit.erg
        """ :type: Module.Raster.Ergebnis.Ergebnis """
        self.plt_raster_phase_schnitt.set_werte(erg.phase)
        self.plt_raster_amp_schnitt.set_werte(erg.amp)
        self.plt_raster_freq_schnitt.set_werte(erg.resfreq)
        self.plt_raster_phase.set_werte(erg.phase)
        self.plt_raster_resfreq.set_werte(erg.resfreq)
        self.plt_raster_amplitude.set_werte(erg.amp)
        self.plt_raster_qfaktor.set_werte(erg.q)

    def spektr_fit_fertig(self):
        self.action_speichern.setEnabled(True)
        self.menu_spektroskopie.setEnabled(True)
        print('TODO: Fit fertig, restliche Plots bereitstellen')

        """import matplotlib.pyplot as plt
        ac = self.fit.messwerte.omega(1).ac(7.)
        dc = ac.dc.index(-4.)
        plt.plot(
            self.fit.messwerte.frequenzen,
            ac.amp_freq[dc],
            antialiased=True
        )
        dc = ac.dc.index(-4.025)
        plt.plot(
            self.fit.messwerte.frequenzen,
            ac.amp_freq[dc],
            antialiased=True
        )
        plt.show()"""

    def aktualisieren(self):
        for plt in self.plots:
            plt.aktualisieren()

    def zeige_alles(self):
        for plt in self.plots:  # TODO stattdessen alle Graphen in einem Fenster darstellen
            plt.zeige()