def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.mw = Ui_MainWindow()
        self.mw.setupUi(self)
        self.filename = None
        self.channels = []
        self.intwin = [None, None]

        self.mw.button_load.clicked.connect(self.load)
        self.mw.button_generate.clicked.connect(self.generate_spec)
        self.mw.button_view.clicked.connect(self.view)
        self.mw.line_lower.textEdited.connect(self.edit_lower)
        self.mw.line_upper.textEdited.connect(self.edit_upper)
        self.mw.actionAbout.triggered.connect(self.about)
class MyWindow(QtGui.QMainWindow):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.mw = Ui_MainWindow()
        self.mw.setupUi(self)
        self.filename = None
        self.channels = []
        self.intwin = [None, None]

        self.mw.button_load.clicked.connect(self.load)
        self.mw.button_generate.clicked.connect(self.generate_spec)
        self.mw.button_view.clicked.connect(self.view)
        self.mw.line_lower.textEdited.connect(self.edit_lower)
        self.mw.line_upper.textEdited.connect(self.edit_upper)
        self.mw.actionAbout.triggered.connect(self.about)

    def load(self):
        fd = QtGui.QFileDialog(self)
        fn = str(fd.getOpenFileName())
        channels = read_drs.get_n_channels(fn)
        if len(channels) < 1:
            return

        self.filename = fn
        self.channels = channels
        self.mw.comboBox.clear()
        for channel in self.channels:
            self.mw.comboBox.addItem(channel)

        self.mw.button_view.setEnabled(True)
        self.mw.label.setText("Loaded '" + self.filename.split('/')[-1] + "'.")
        self.mw.button_generate.setEnabled(False)
        self.check_win()

    def view(self):
        view_channel(self.filename, len(self.channels),
                     str(self.mw.comboBox.currentText()))

    def edit_lower(self):
        if str(self.mw.line_lower.displayText()).isdigit():
            self.intwin[0] = int(self.mw.line_lower.displayText())
        else:
            self.mw.line_lower.setText(str(self.intwin[0]))
        self.check_win()

    def edit_upper(self):
        if str(self.mw.line_lower.displayText()).isdigit():
            self.intwin[1] = int(self.mw.line_upper.displayText())
        else:
            self.mw.line_lower.setText(str(self.intwin[1]))
        self.check_win()

    def check_win(self):
        if None not in self.intwin and self.filename:
            self.mw.button_generate.setEnabled(True)

    def about(self):
        txt = "Helper program to read spectra from drs4(v5) data.\n" +\
              "For questions improvements mail @" +\
              "*****@*****.**" +\
               "\n\n Tobias Jammer 2015"
        QtGui.QMessageBox.about(self, 'About Panel Spetrum Helper', txt)

    def generate_spec(self):
        channel = str(self.mw.comboBox.currentText())
        spec = read_drs.base_test(self.filename, self.intwin,
            nchannels=len(self.channels), chnl=''.join(('c', channel)))
        plt.figure()
        plt.hold(True)
        plt.plot(spec[1][:-1], spec[0])
        plt.title(', '.join((self.filename.split('/')[-1],
                  'channel {}'.format(channel))))
        plt.show()