Exemplo n.º 1
0
    def __init__(self, dialog):
        Ui_Dialog.__init__(self)
        self.setupUi(dialog)
        # self.config(dialog)

        self.browser.clicked.connect(self.input_filename_browser_clicked)
        self.importBtn.clicked.connect(self.input_filename_import_clicked)
        self.filterFormat.currentIndexChanged.connect(
            self.filter_format_changed)
        self.filterBtn.clicked.connect(self.filter_button_clicked)
        self.saveBtn.clicked.connect(self.csv_save_clicked)
Exemplo n.º 2
0
 def __init__(self):
     super().__init__()
     # self.ui = loadUi('main.ui', self)
     self.ui = Ui_Dialog()
     self.ui.setupUi(self)
     self.ui.btn_select.clicked.connect(self.openFileNameDialog)
     self.msg = '請選擇 Jenkins SQL資料夾目錄,該目錄裡面有Procedures和Packages兩個子目錄。'
     self.bfmsg = ''
     self.it = None
     self.v_process = 0
     self.ui.progressBar.setValue(0)
     self.timer = QTimer()
     self.timer.timeout.connect(self.update)
     self.timer.start(1000)
Exemplo n.º 3
0
    def __init__(self):
        super().__init__()

        self.ui = Ui_Dialog()
        self.ui.setupUi(self)

        self.signals_init()

        self.ui.verticalSlider.setMaximum(50)
        self.ui.verticalSlider.setMinimum(-5)
        self.ui.verticalSlider.setSingleStep(0.1)

        self.ui.lineEdit.setText(str(self.ui.verticalSlider.value()))

        self.run_the_simu()
Exemplo n.º 4
0
class AppWindow(QDialog):
    def __init__(self):
        super().__init__()
        # self.ui = loadUi('main.ui', self)
        self.ui = Ui_Dialog()
        self.ui.setupUi(self)
        self.ui.btn_select.clicked.connect(self.openFileNameDialog)
        self.msg = '請選擇 Jenkins SQL資料夾目錄,該目錄裡面有Procedures和Packages兩個子目錄。'
        self.bfmsg = ''
        self.it = None
        self.v_process = 0
        self.ui.progressBar.setValue(0)
        self.timer = QTimer()
        self.timer.timeout.connect(self.update)
        self.timer.start(1000)

    def update(self):
        if self.it:
            self.ui.progressBar.setValue(self.it.v_process)
        diffmsg = self.msg.replace(self.bfmsg, '')
        if diffmsg:
            self.ui.textBrowser.append(diffmsg)
            self.bfmsg = self.msg

    def openFileNameDialog(self):
        dirName = QFileDialog.getExistingDirectory(self, "選取資料夾")
        if dirName:
            self.log(dirName)
            self.it = FortifyDummyFix(self)

            self.thread = Worker()
            self.thread.setup(self.it, dirName)
            self.thread.start()

    def log(self, msg):
        self.msg += '\n' + msg
Exemplo n.º 5
0
    def __init__(self):
        super().__init__()

        self.ui = Ui_Dialog()
        self.ui.setupUi(self)
Exemplo n.º 6
0
class Fitz(QtWidgets.QDialog):
    def __init__(self):
        super().__init__()

        self.ui = Ui_Dialog()
        self.ui.setupUi(self)
Exemplo n.º 7
0
from PyQt5 import QtWidgets
from main import Ui_Dialog

if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    widget = QtWidgets.QDialog()
    ui = Ui_Dialog()
    ui.setupUi(widget)
    widget.show()
    sys.exit(app.exec_())
Exemplo n.º 8
0
 def __init__(self):
     super().__init__()
     self.main = Ui_Dialog()
     self.main.setupUi(self)
     self.showNormal()
     self.setFocus()
Exemplo n.º 9
0
class MainApp(QDialog):
    def __init__(self):
        super().__init__()
        self.main = Ui_Dialog()
        self.main.setupUi(self)
        self.showNormal()
        self.setFocus()

    def init_signals_slots(self):

        self.main.updateListPushButton.clicked.connect(
            self.update_via_api_meter_list_table)

        self.main.testConnectionpushButton.clicked.connect(
            self.check_team_connection_status_thread)

        self.main.saveCommandLinkButton.clicked.connect(self.hide)

        self.main.hostNameLineEdit.textChanged.connect(
            self.update_config_hostname)

        self.main.portNumberLineEdit.textChanged.connect(
            self.update_config_portnumber)

        #self.main.meterTableWidget.itemClicked.connect( self.get_selected_items )

        self.main.saveSelectedMeterListPushButton.clicked.connect(
            self.update_config_selected_meterslist)

        self.main.fileDialogPushButton.clicked.connect(
            self.update_config_reportsfolder)

    def load_user_config(self):

        #print("Load User Config")

        with open('config.json', 'r') as f:
            config = json.load(f)
            #print("Current Config: {}".format( str( config ) ))

        host = config['hostname']
        port = config['portnumber']
        reportsFolder = config['reportsFolder']

        self.main.hostNameLineEdit.setText(str(host))
        self.main.portNumberLineEdit.setText(str(port))
        self.main.reportsFolderLineEdit.setText(str(reportsFolder))

        QApplication.processEvents()

    def get_config_meterlist(self):

        config = ""

        with open('config.json', 'r') as f:
            config = json.load(f)

        return json.loads(config['meterList'].replace("\'", "\""))

    def update_user_config(self, setting, newVal):

        #print("Update User Config")
        config = ""

        with open('config.json', 'r') as f:
            config = json.load(f)

        with open('config.json', 'w') as f:
            config[str(setting)] = str(newVal)
            json.dump(config, f)

    def update_config_hostname(self):

        hostname = self.main.hostNameLineEdit.text()

        self.update_user_config('hostname', hostname)

    def update_config_portnumber(self):

        portnumber = self.main.portNumberLineEdit.text()

        self.update_user_config('portnumber', portnumber)

    def update_config_reportsfolder(self):

        reportDirectory = ""

        options = QFileDialog.Options()
        options |= QFileDialog.DontUseNativeDialog
        #fileName, _ = QFileDialog.getOpenFileName(self,"PQ Reports Folder", "","All Files (*);;Excel Files (*.csv)", options=options)

        reportDirectory = QFileDialog.getExistingDirectory(
            self, "PQ Reports Folder")

        print("{}".format(reportDirectory))

        if reportDirectory:

            self.main.reportsFolderLineEdit.setText(reportDirectory)
            self.update_user_config('reportsFolder', reportDirectory)

    def update_config_meterlist(self, meterListJSON):

        self.update_user_config('meterList', meterListJSON)

    def check_team_connection_status(self):

        hostname = self.main.hostNameLineEdit.text()

        portnumber = self.main.portNumberLineEdit.text()

        if (hostname != "" and portnumber != ""):

            base_api = "http://{}:{}".format(hostname, portnumber)

        else:

            base_api = "http://localhost:5630"

        try:

            r = reqs.get("{}/api/team/version".format(base_api))

            js_data = r.json()["data"]

            masterDbVersion = js_data["masterDbVersion"]

            self.main.connectionStatusLabel.setText("Client Connected")

        except Exception as e:

            self.main.connectionStatusLabel.setText(
                "Client Connection Failed !")

    def check_team_connection_status_thread(self):

        func_thread_inst(func=self.check_team_connection_status)

    def init_meter_list_table(self):

        meterList = self.get_config_meterlist()

        row_len = len(meterList)

        self.main.meterTableWidget.setRowCount(row_len)
        self.main.meterTableWidget.setColumnCount(3)
        self.main.meterTableWidget.setHorizontalHeaderLabels(
            ["ID", "Meter Name", "Included"])

        row = 0
        col = 0

        for meterObj in meterList:

            self.main.meterTableWidget.setItem(
                row, col, QTableWidgetItem(str(meterObj['deviceId'])))
            self.main.meterTableWidget.setItem(
                row, col + 1, QTableWidgetItem(str(meterObj['deviceName'])))
            self.main.meterTableWidget.setItem(
                row, col + 2, QTableWidgetItem(str(meterObj['selected'])))

            row += 1

    def update_via_api_meter_list_table(self):

        global sb, m

        #QMessageBox.about(self, "Click Event", "Update meter list table")

        deviceNames = []
        deviceIds = []
        pageData = []

        try:

            sb.run()

            sb.update_progress(0, 1)

            pageData = get_device_list(sb)

            sb.finish()

            deviceIds, deviceNames = get_meter_list(pageData)

        except Exception as e:

            QMessageBox.warning(self, "Error Event", str(e))
            #meterList = [{"deviceId": 1, "deiceName":"LEW_735"}, {"deviceId": 2, "deviceName":"Zocholl_M_735"}]

        row_len = len(deviceIds)

        self.main.meterTableWidget.setRowCount(row_len)
        self.main.meterTableWidget.setColumnCount(3)
        self.main.meterTableWidget.setHorizontalHeaderLabels(
            ["ID", "Meter Name", "Included"])

        row = 0
        col = 0

        meterListJSON = []

        for id, dn in zip(deviceIds, deviceNames):

            self.main.meterTableWidget.setItem(row, col,
                                               QTableWidgetItem(str(id)))
            self.main.meterTableWidget.setItem(row, col + 1,
                                               QTableWidgetItem(str(dn)))
            self.main.meterTableWidget.setItem(row, col + 2,
                                               QTableWidgetItem("false"))
            meterListJSON.append({
                "deviceId": id,
                "deviceName": dn,
                "selected": "false"
            })

            row += 1

        self.update_config_meterlist(meterListJSON)

        msg = QMessageBox()
        msg.setIcon(QMessageBox.Information)
        msg.setText("Please reselect meters to be included in the PQ report.")
        msg.setWindowTitle("Meter List Updated")
        msg.setStandardButtons(QMessageBox.Ok)
        retval = msg.exec_()

    def update_config_selected_meterslist(self):

        meterListFull = self.get_config_meterlist()

        full_list_len = len(meterListFull)

        selectedItems = self.main.meterTableWidget.selectedItems()

        selected_list_len = len(selectedItems) - 1

        device_id = ""

        for k in range(full_list_len):

            device_id = meterListFull[k]['deviceId']

            meterListFull[k]['selected'] = "false"

            for i in range(selected_list_len):

                #print("Selected Item: {}".format( str(selectedItems[i].text()) ))

                deviceId = selectedItems[i].text()

                if str(deviceId) in str(device_id):

                    meterListFull[k]['selected'] = "true"

                    break

        self.update_config_meterlist(meterListFull)

        self.init_meter_list_table()

        msg = QMessageBox()
        msg.setIcon(QMessageBox.Information)
        msg.setText("PQ report meter list updated !")
        msg.setWindowTitle("Meter Selection")
        msg.setStandardButtons(QMessageBox.Ok)
        retval = msg.exec_()
Exemplo n.º 10
0
class huxly(QtWidgets.QDialog):
    def __init__(self):
        super().__init__()

        self.ui = Ui_Dialog()
        self.ui.setupUi(self)

        self.signals_init()

        self.ui.verticalSlider.setMaximum(50)
        self.ui.verticalSlider.setMinimum(-5)
        self.ui.verticalSlider.setSingleStep(0.1)

        self.ui.lineEdit.setText(str(self.ui.verticalSlider.value()))

        self.run_the_simu()

    def closeEvent(self, event):
        self.anim._stop()

    def signals_init(self):
        self.ui.verticalSlider.valueChanged.connect(self.slider_changed)
        self.ui.lineEdit.returnPressed.connect(self.lineEditChanged)

    def run_the_simu(self):
        self.I = float(self.ui.lineEdit.text())
        v = -63
        n = 0
        m = 0
        h = 0
        dt = 0.001
        t_total = 10
        t = np.arange(0, t_total, dt)
        self.t = t

        self.v_list, self.n_list, self.m_list, self.h_list, self.N_spikes = experiment_run(
            v, n, m, h, self.I, t_total, dt)
        self.run_animation()

    def run_animation(self):

        self.ui.widget.canvas.ax1.plot(self.t,
                                       self.v_list,
                                       '--',
                                       alpha=0.5,
                                       label='v_list')
        self.ui.widget.canvas.ax1.set_xticks([])
        self.ui.widget.canvas.ax1.set_ylabel('V')

        self.ui.widget.canvas.ax2.plot(self.t,
                                       self.n_list,
                                       '--',
                                       alpha=0.5,
                                       label='n_list')
        self.ui.widget.canvas.ax2.set_xticks([])
        self.ui.widget.canvas.ax2.set_ylabel('n')

        self.ui.widget.canvas.ax3.plot(self.t,
                                       self.h_list,
                                       '--',
                                       alpha=0.5,
                                       label='h_list')
        self.ui.widget.canvas.ax3.set_xticks([])
        self.ui.widget.canvas.ax3.set_ylabel('h')

        self.ui.widget.canvas.ax4.plot(self.t,
                                       self.m_list,
                                       '--',
                                       alpha=0.5,
                                       label='h_list')
        self.ui.widget.canvas.ax4.set_ylabel('m')
        self.ui.widget.canvas.ax4.set_xlabel('t ($ms$)')

        self.ui.widget.canvas.ax5.plot(self.n_list, self.v_list, '--')
        self.ui.widget.canvas.ax5.set_xlabel('n')
        self.ui.widget.canvas.ax5.set_ylabel('v')

        Lines = [
            self.ui.widget.canvas.line1, self.ui.widget.canvas.line2,
            self.ui.widget.canvas.line3, self.ui.widget.canvas.line4,
            self.ui.widget.canvas.line5
        ]

        Pathes = [[self.t, self.v_list], [self.t, self.n_list],
                  [self.t, self.h_list], [self.t, self.m_list],
                  [self.n_list, self.v_list]]

        init_data = [[self.t[0], self.v_list[0]], [self.t[0], self.n_list[0]],
                     [self.t[0], self.h_list[0]], [self.t[0], self.m_list[0]],
                     [self.n_list[0], self.v_list[0]]]

        draw_mode = ['line', 'line', 'line', 'line', 'dot']

        animobj = Animationcls(Lines, Pathes, init_data,
                               self.ui.widget.canvas.fig, draw_mode)
        self.anim = animobj.start_animation()

    def slider_changed(self, value):
        self.ui.lineEdit.setText(str(value))
        self.anim._stop()
        self.clear_axes()
        self.run_the_simu()

    def lineEditChanged(self):
        value = self.ui.lineEdit.text()
        self.ui.verticalSlider.setValue(float(value))
        self.anim._stop()
        self.clear_axes()
        self.run_the_simu()

    def clear_axes(self):
        self.ui.widget.canvas.ax1.clear()
        self.ui.widget.canvas.ax2.clear()
        self.ui.widget.canvas.ax3.clear()
        self.ui.widget.canvas.ax4.clear()
        self.ui.widget.canvas.ax5.clear()