コード例 #1
0
ファイル: main.py プロジェクト: robin88322/sania7
    def analise1(self):
        A = self.get_A()
        if A.any() == None:
            QMessageBox.warning(w, 'Error', 'Error parsing matrix')

        # researching A
        cognitiveModel = CognitiveModel(A)

        results = 'Власні числа: \n'
        results += ' '.join(
            str(x) + '\n' for x in cognitiveModel.calculate_eigenvalues())
        results += ' \n '

        results += 'Стійкість збурення: '
        results += 'True' if cognitiveModel.check_perturbation_stability(
        ) else 'False'
        results += ' \n '

        results += 'Стійкість значення: '
        results += 'True' if cognitiveModel.check_numerical_stability(
        ) else 'False'
        results += ' \n '
        results += ' \n '

        results += 'Структурна стійкість: '
        cycles = cognitiveModel.check_structural_stability()
        if not cycles:
            results += 'True'
        else:
            cycle_str = lambda x: ' - '.join(
                self.main_table.verticalHeaderItem(y).text() for y in x)
            results += 'No \n(' + ', \n'.join(cycle_str(x)
                                              for x in cycles) + ')'

        self.result.setText(results)
コード例 #2
0
    def package(self):
        # 清空上次打包完成后的进度条显示列表
        count = self.qpb_list_widget.count()
        if count > 0:
            for i in range(count):
                item = self.qpb_list_widget.takeItem(0)
                del item

        if len(self.selected) <= 0:
            QMessageBox.warning(self, "警告", "请选择需要打包的渠道!")
            return
        for package in self.selected:
            # {"success": 是否成功, "label": 进度条文本view, "qpb": 进度条view, "runnable": 打包任务}
            lbp = {'success': False}
            self.set_qpb_list_item(package['channel']['channelId'], lbp)
            runnable = PackRunnable(package['game'], package['channel'],
                                    package['game']['apk'])
            runnable.signal.signal.connect(self.set_value)
            self.monitor.add_runnable(runnable)
            lbp['runnable'] = runnable
            self.lbps[package['channel']['channelId']] = lbp
        # 开启监听线程
        self.monitor.start()
        # 开始打包,不可返回,返回按钮禁用;设置打包按钮文本为"取 消"
        self.back_btn.setDisabled(True)
        self.pack_btn.setText("取 消")
コード例 #3
0
    def HandlingCondtion(self):
        if len(self.lineEditSelected.text()) <= 0:
            QMessageBox.warning(self, "خطأ", "يجب أن تحدد ملف أو مجلد")
            return False

        if len(self.lineEditPassword.text()) <= 5:
            QMessageBox.warning(
                self, "خطأ", "يجب أن تكون كلمة السر أكبر من 5 أحرف أو أرقام")
            return False

        if len(self.lineEditPassword.text()) > 16:
            QMessageBox.warning(self, "خطأ",
                                "يجب أن تكون كلمة السر أقل من 16 حرف أو رقم")
            return False

        if self.lineEditPassword.text() != self.lineEditConfPassword.text():
            QMessageBox.warning(
                self, "خطأ", "يجب أن يكون كلمتا السر في الخانتين متساويتين")
            return False

        if not os.path.exists(self.lineEditSelected.text()):
            QMessageBox.warning(self, "خطأ",
                                "هذا المجلد أو هذا الملف غير موجود")
            return False

        return True
コード例 #4
0
 def on_treeview_doubleClick(self):
     '''
     treeview selection double click event
     '''
     if self.__tb_treeview.currentItem():
         hititem = self.__tb_treeview.currentItem()
         
         if hititem.text(1) == 'root':
             return
         
         if hititem.text(0) in self.__opened_tables:
             return
         
         columns = []
         column_types = []
         records = []
         try:
             # load the datatable record
             columns, column_types, records = self.__database_driver.get_records(self.__db_comboBox.currentText(), hititem.text(0))
         except Exception as e:
             QMessageBox.warning(self, 'Warning', "Table load failed, please retry.", QMessageBox.Ok)
             print('expect:', e)
             return
         
         # record the selected table
         self.__opened_tables.append(hititem.text(0))
         # render grid
         self.render_table_grid(hititem.text(0), columns, column_types, records)
コード例 #5
0
 def on_pushButton_next_clicked(self):
     """
     Slot documentation goes here.
     """
     # TODO: not implemented yet
     try:
         self.freq_sg = float(self.lineEdit_freq_sg.text()) * 1e6
         self.power_sg = float(self.lineEdit_power_sg.text())
         self.freq_sa = float(self.lineEdit_freq_sa.text()) * 1e6
         self.bw_sa = float(self.lineEdit_bw_sa.text()) * 1e6
         addr_sg = str(self.lineEdit_addr_sg.text())
         addr_sa = str(self.lineEdit_addr_sa.text())
     except:
         QMessageBox.warning(self, "警告", "测试参数输入不完整或格式不正确!")
         return
     addr_sg = "TCPIP0::" + addr_sg + "::inst0::INSTR"
     addr_sa = "TCPIP0::" + addr_sa + "::inst0::INSTR"
     self.test_result = test_results()
     if not self.demo:
         try:
             self.sa = AgilentN5242.VNA_AgilentN5242(addr_sa)
             self.sg = AgilentN5242.VNA_AgilentN5242(addr_sg)
         except:
             QMessageBox.warning(self, "警告", "仪表连接错误!")
             print('仪表连接错误,请确认!')
             return
     self.test_result.test_item = '收发单元发射通道'
     self.test_result.test_condition = '频率:' + self.lineEdit_freq_sg.text(
     ) + 'MHz,功率:' + self.lineEdit_power_sg.text() + 'dBm'
     self.test_result.test_results = 1 + np.random.random(1)
     self.test_result.test_conclusion = 'PASS'
     self._signalTest.emit("test")
     self.accept()
     self.close()
コード例 #6
0
    def package(self):
        # 清空上次打包完成后的进度条显示列表
        count = self.qpb_list_widget.count()
        if count > 0:
            for i in range(count):
                item = self.qpb_list_widget.takeItem(0)
                del item

        self.indexs = []
        for i in range(len(self.channels)):
            if self.check_boxs[i].isChecked():
                self.indexs.append(i)
        if len(self.indexs) <= 0:
            QMessageBox.warning(self, "警告", "请选择需要打包的渠道!")
            return

        if self.apk_path.text().strip() == "":
            QMessageBox.warning(self, "警告", "请上传母包!")
            return

        apk = self.apk_path.text().strip().replace('\\', '/')
        for i in self.indexs:
            lbp = {}
            lbp['success'] = False
            self.set_qpb_list_item(self.channels[i], lbp)
            runnable = PackRunnable(self.game, self.channels[i], apk)
            runnable.signal.signal.connect(self.set_value)
            self.monitor.add_runnable(runnable)
            lbp['runnable'] = runnable
            self.lbps[self.channels[i]['channelId']] = lbp
        # 开启监听线程
        self.monitor.start()
        # 开始打包,不可返回,返回按钮禁用;设置打包按钮文本为"取 消"
        self.back_btn.setDisabled(True)
        self.pack_btn.setText("取 消")
コード例 #7
0
    def importGraph(self, text):
        '''Init text after an import.

        Argument(s):
        text (str): Textual representation of the graph
        '''
        self.acceptUpdate = False
        self.setPlainText(text)

        pydotGraph = graph_from_dot_data(text)

        # Check that attributes are in valid form
        message = self.checkItemsAttributes(pydotGraph.get_nodes(),
                                            pydotGraph.get_edges())
        if not message:
            self.rebuildTextModel(text, pydotGraph)

            # Send every elements to the model to build him
            for id, args in self.nodes.items():
                self.controller.onCreateNode(id, args)
            for id, args in self.edges.items():
                self.controller.onCreateEdge(args[EdgeArgs.sourceId],
                                             args[EdgeArgs.destId])

        # Some attributes are in invalid form
        else:
            QMessageBox.warning(self, "Syntax error", message)

        self.acceptUpdate = True
コード例 #8
0
ファイル: main.py プロジェクト: vtbmusic/VRCMaker
 def openFile(self):
     fname = QFileDialog.getOpenFileName(
         self, '打开文件', ".",
         "All Files (*);;Vrc Files (*.vrc);;Text Files (*.txt);;Lrc Files (*.lrc);;Srt Files (*.srt);;Ass Files (*.ass)"
     )
     if fname[0]:
         decoded = False
         for enc in ['utf-8-sig', 'utf-8', 'utf-16-le', 'gbk']:
             try:
                 with open(fname[0], 'r', encoding=enc) as f:
                     data = f.read()
                 decoded = True
                 break
             except OSError:
                 QMessageBox.warning(self, '提示', '导入失败, 发生错误',
                                     QMessageBox.Cancel)
                 return False, None
             except UnicodeDecodeError:
                 pass
         if not decoded:
             QMessageBox.warning(self, '提示', '编码格式不支持', QMessageBox.Cancel)
             return False, None
         else:
             return True, data
     else:
         return False, None
コード例 #9
0
    def on_pushButton_next_clicked(self):
        """
        Slot documentation goes here.
        """
        # TODO: not implemented yet

        self.test_result=test_results()
        addr_sa=str(self.maddress)
        addr_sa = "TCPIP0::" + addr_sa + "::inst0::INSTR"
        if not self.demo:
            try:
                self.sa=SpectrumAnalyzer.SpectrumAnalyzer(addr_sa)
            except:
                QMessageBox.warning(self,ModuleConstants.QMESSAGEBOX_WARN, 
                                    ModuleConstants.QMESSAGEBOX_WARN_INSTR_NOT_VALID)
                return
        self.test_result.test_item = ModuleConstants.TESTITEM_TR_LO
        self.test_result.test_condition = '--'
        self.test_result.test_results=str(self.testProcess())
        if self.test_result.test_results ==self.threshold:
            QMessageBox.information(self,ModuleConstants.QMESSAGEBOX_INFO,ModuleConstants.QMESSAGEBOX_CONTENTS_TEST_NORMAL,QMessageBox.Ok)
            self.test_result.test_conclusion=ModuleConstants.TESTRESULT_PASS
        else:
            QMessageBox.information(self,ModuleConstants.QMESSAGEBOX_INFO,ModuleConstants.TESTITEM_TR_LO+
                                    ModuleConstants.QMESSAGEBOX_CONTENTS_TEST_ABNORMAL,QMessageBox.Ok)
            self.test_result.test_conclusion=ModuleConstants.TESTRESULT_FAIL
        self._signalTest.emit("test_lo")
        self.accept()
        self.close()
コード例 #10
0
 def _fileSelected(self, filename, quiet=False):
     self.wokbtn.setEnabled(False)
     if not filename:
         return None
     # check that filename matches model
     if not os.path.samefile(self._model_dir, os.path.dirname(filename)):
         self.wfile.setFilename('')
         if not quiet:
             QMessageBox.warning(
                 self, "Directory mismatch",
                 """<P>The FITS file must reside in the same directory
       as the current sky model.</P>""")
         self.wfile.setDirectory(self._model_dir)
         return None
     # if filename is not in model already, enable the "add to model" control
     for src in self.model.sources:
         if isinstance(getattr(src, 'shape', None), ModelClasses.FITSImage):
             if os.path.exists(src.shape.filename) and os.path.samefile(
                     src.shape.filename, filename):
                 if not quiet:
                     QMessageBox.warning(
                         self, "Already in model",
                         "This FITS brick is already present in the model.")
                 self.wfile.setFilename('')
                 return None
     if not str(self.wname.text()):
         self.wname.setText(
             os.path.splitext(os.path.basename(str(filename)))[0])
     self.wokbtn.setEnabled(True)
     return filename
コード例 #11
0
 def changeLabel(self, shape, change_item):
     if change_item not in list(self.labelInfoDict.keys()):
         QMessageBox.warning(self, 'check label',
                             'modified label not in Labels list')
     else:
         shape.label = change_item
         self.setDirty()
コード例 #12
0
ファイル: xarm_ui.py プロジェクト: vimior/UF-Debug-Tool
 def get_servo_addr_32(self, event):
     try:
         addr = self.lnt_servo_addr.text().strip()
         try:
             if addr.lower().startswith('0x'):
                 addr = int(addr, base=16)
             else:
                 addr = int(addr)
         except:
             QMessageBox.warning(self.main_ui.window, '错误',
                                 '请输入正确的地址, 地址必须是u16类型')
             return
         text = self.combobox_servo.currentText()
         if text == 'axis-all':
             QMessageBox.warning(self.main_ui.window, '警告',
                                 '请选择其中一个电机,不能选择所有电机')
             return
         else:
             servo_id = int(text.split('-')[-1])
         tmp = '你确定要获取电机{}的地址{}的值吗?'.format(servo_id, addr)
         if QMessageBox.question(self.main_ui.window, '警告',
                                 tmp) == QMessageBox.Yes:
             item = {
                 'cmd': 'get_servo_addr_32',
                 'kwargs': {
                     'servo_id': servo_id,
                     'addr': addr
                 }
             }
             self.handler.put_cmd_que(item)
     except Exception as e:
         print(e)
コード例 #13
0
ファイル: TextGraphView.py プロジェクト: pydoted/dotEd
    def importGraph(self, text):
        '''Init text after an import.

        Argument(s):
        text (str): Textual representation of the graph
        '''
        self.acceptUpdate = False
        self.setPlainText(text)

        pydotGraph = graph_from_dot_data(text)

        # Check that attributes are in valid form
        message = self.checkItemsAttributes(pydotGraph.get_nodes(),
                                            pydotGraph.get_edges())
        if not message:
            self.rebuildTextModel(text, pydotGraph)

            # Send every elements to the model to build him
            for id, args in self.nodes.items():
                self.controller.onCreateNode(id, args)
            for id, args in self.edges.items():
                self.controller.onCreateEdge(args[EdgeArgs.sourceId],
                                             args[EdgeArgs.destId])

        # Some attributes are in invalid form
        else:
            QMessageBox.warning(self, "Syntax error", message)

        self.acceptUpdate = True
コード例 #14
0
    def save_data(self):
        if self.game_name_value.text().strip() == "":
            QMessageBox.warning(self, "警告", "游戏名称不能为空!")
            return False
        if self.keystore_path.text().strip() == "":
            QMessageBox.warning(self, "警告", "必须上传keystore签名文件!")
            return False
        if self.keystore_pwd_value.text().strip() == "":
            QMessageBox.warning(self, "警告", "keystore密码不能为空!")
            return False
        if self.keystore_alias_value.text().strip() == "":
            QMessageBox.warning(self, "警告", "alias不能为空!")
            return False
        if self.keystore_aliaspwd_value.text().strip() == "":
            QMessageBox.warning(self, "警告", "alias密码不能为空!")
            return False
        self.game['name'] = self.game_name_value.text().strip()
        self.game['desc'] = self.game_desc_value.toPlainText().strip()
        if self.keystore_exchanged:
            keystore = os.path.basename(self.keystore_path.text().strip())
            self.game['keystore'] = keystore
            self.game['keypwd'] = self.keystore_pwd_value.text().strip()
            self.game['alias'] = self.keystore_alias_value.text().strip()
            self.game['aliaspwd'] = self.keystore_aliaspwd_value.text().strip()
            keystore_path = Utils.get_full_path('games/' + self.game['id'] +
                                                '/keystore/' + keystore)
            if not os.path.exists(keystore_path):
                Utils.copy_file(self.keystore_path.text().strip(),
                                keystore_path)

        self.main_win.games[self.main_win.game_index] = self.game
        self.game_list_model.update_item(self.main_win.game_index, self.game)
        return Utils.update_games(Utils.get_full_path('games/games.xml'),
                                  self.game, self.main_win.game_index)
コード例 #15
0
ファイル: main.py プロジェクト: robin88322/sania7
    def graph1(self):
        A = self.get_A()
        if A.any() == None:
            QMessageBox.warning(w, 'Error', 'Помилка обробки матриці')
            return

        cognitiveModel = CognitiveModel(A)
        cognitiveModel.draw_graph()
コード例 #16
0
ファイル: main.py プロジェクト: robin88322/sania7
 def impulse1(self):
     A = self.get_A()
     if A.any() == None:
         QMessageBox.warning(w, 'Error', 'Error parsing matrix')
     cognitiveModel = CognitiveModel(A)
     B = self.get_B()
     t = 7
     cognitiveModel.impulse_model(t=t, q=B)
コード例 #17
0
def merge_images_labels_to_one_dir(dir_path):
    if not is_images_path_exist(dir_path) or not is_labels_path_exist(dir_path):
        QMessageBox.warning(None, 'warning', 'No images or labels exist')

    images_path = os.path.join(dir_path, DIR_IMAGES)
    labels_path = os.path.join(dir_path, DIR_LABELS)
    move_files(images_path, dir_path)
    move_files(labels_path, dir_path)
    os.rmdir(images_path)
    os.rmdir(labels_path)
コード例 #18
0
 def select_list(self):
     index = self.qpb_list_widget.currentIndex().row()
     channel_id = self.channels[self.indexs[index]]['channelId']
     success = self.lbps[channel_id]['success']
     dest_apk_dir = Utils.get_full_path('output/' + self.game['id'] + '/' +
                                        channel_id)
     if success:
         os.startfile(dest_apk_dir)
     else:
         QMessageBox.warning(self, "警告", "打包成功了吗?")
コード例 #19
0
 def npkYesFunc():
     if not self.mainWin.npkDict:
         QMessageBox.warning(self, "未设置NPK词典", "未设置NPK词典将不能设置NPK提取",
                             QMessageBox.Yes, QMessageBox.Yes)
         npkNo.setChecked(True)
         return False
     if not self.mainWin.img2Dir:
         QMessageBox.warning(self, "未设置img2目录", "未设置img2目录将不能设置NPK提取",
                             QMessageBox.Yes, QMessageBox.Yes)
         npkNo.setChecked(True)
         return False
コード例 #20
0
 def add_icon(self):
     fname = QFileDialog.getOpenFileName(
         self, '选择icon', os.path.join(os.path.expanduser('~'), "Desktop"),
         ("Images (*.png)"))
     if fname[0]:
         pix = QPixmap(fname[0])
         if pix.width() != 512 or pix.height() != 512:
             QMessageBox.warning(self, "警告", "必须上传512*512.png图片")
             return
         self.icon_img.setPixmap(pix)
         self.icon_path = fname[0]
コード例 #21
0
ファイル: main.py プロジェクト: robin88322/sania7
    def remove1(self):
        selected_items = self.main_table.selectedItems()
        try:
            k = selected_items[0]
            c = k.column()

            self.main_table.removeColumn(c)
            self.main_table.removeRow(c)
        #self.impulse_table.removeColumn(c)
        except:
            QMessageBox.warning(w, 'Error', 'Нема виділених даних')
コード例 #22
0
 def on_pushButton_next_clicked(self):
     """
     Slot documentation goes here.
     """
     # TODO: not implemented yet
     try:
         self.freq_sg = float(self.lineEdit_freq_sg.text()) * 1e6
         self.power_sg = float(self.lineEdit_power_sg.text())
         self.freq_sa = float(self.lineEdit_freq_sa.text()) * 1e6
         self.bw_sa = float(self.lineEdit_bw_sa.text()) * 1e6
         addr_sg = str(self.addr_sg)
         addr_sa = str(self.addr_sa)
     except:
         QMessageBox.warning(
             self, ModuleConstants.QMESSAGEBOX_WARN,
             ModuleConstants.QMESSAGEBOX_WARN_INPUT_PARAMETER_NOT_ENOUGH)
         return
     addr_sg = "TCPIP0::" + addr_sg + "::inst0::INSTR"
     addr_sa = "TCPIP0::" + addr_sa + "::inst0::INSTR"
     self.test_result = test_results()
     if not self.demo:
         try:
             self.sa = SpectrumAnalyzer.SpectrumAnalyzer(addr_sa)
             self.sg = SignalGenerator.SignalGenerator(addr_sg)
         except:
             QMessageBox.warning(
                 self, ModuleConstants.QMESSAGEBOX_WARN,
                 ModuleConstants.QMESSAGEBOX_WARN_INSTR_NOT_VALID)
             return
     self.test_result.test_item = ModuleConstants.TESTITEM_TR_R
     self.test_result.test_condition = ModuleConstants.TESTCONDITION_FREQ+self.lineEdit_freq_sg.text()+\
                                       ModuleConstants.TESTCONDITION_FREQ_UNIT+','+ModuleConstants.TESTCONDITION_POWER+\
                                       self.lineEdit_power_sg.text()+ModuleConstants.TESTCONDITION_POWER_UNIT
     self.test_result.test_results = self.testProcess()
     if self.thresholdL < self.test_result.test_results < self.thresholdH:
         QMessageBox.information(
             self, ModuleConstants.QMESSAGEBOX_INFO,
             ModuleConstants.QMESSAGEBOX_CONTENTS_TEST_NORMAL,
             QMessageBox.Ok)
         self.test_result.test_conclusion = ModuleConstants.TESTRESULT_PASS
     else:
         QMessageBox.information(
             self, ModuleConstants.QMESSAGEBOX_INFO,
             ModuleConstants.TESTITEM_TR_R +
             ModuleConstants.QMESSAGEBOX_CONTENTS_TEST_ABNORMAL,
             QMessageBox.Ok)
         self.test_result.test_conclusion = ModuleConstants.TESTRESULT_FAIL
     if not self.demo:
         self.sa.Preset()
         self.sg.Preset()
     self._signalTest.emit("test")
     self.accept()
     self.close()
コード例 #23
0
    def on_pushButton_next_clicked(self):
        """
        Slot documentation goes here.
        """
        # TODO: not implemented yet
        try:
            self.freq_na = float(self.lineEdit_freq_na.text()) * 1e6
            self.bw_na = float(self.lineEdit_bw_na.text()) * 1e6
            addr_na = str(self.addr_na)
        except:
            QMessageBox.warning(
                self, ModuleConstants.QMESSAGEBOX_WARN,
                ModuleConstants.QMESSAGEBOX_WARN_INPUT_PARAMETER_NOT_ENOUGH)
            return
        addr_na = "TCPIP0::" + addr_na + "::inst0::INSTR"

        self.test_result = test_results()
        if not self.demo:
            try:
                self.na = AgilentN5242.VNA_AgilentN5242(addr_na)
            except:
                QMessageBox.warning(
                    self, ModuleConstants.QMESSAGEBOX_WARN,
                    ModuleConstants.QMESSAGEBOX_WARN_INSTR_NOT_VALID)
                return
        self.test_result.test_item = ModuleConstants.TESTITEM_FILTER
        self.test_result.test_condition = ModuleConstants.TESTCONDITION_FREQ+self.lineEdit_freq_na.text()+\
                                          ModuleConstants.TESTCONDITION_FREQ_UNIT+','+ModuleConstants.TESTCONDITION_BAND+\
                                          self.lineEdit_bw_na.text()+ModuleConstants.TESTCONDITION_BAND_UNIT
        mTemp = self.testProcess()
        self.test_result.test_results = 'S11: ' + str(
            mTemp[0]) + ' S21: ' + str(mTemp[1])
        if self.thresholdL_1 < mTemp[
                0] < self.thresholdH_1 and self.thresholdL_2 < mTemp[
                    1] < self.thresholdH_2:
            QMessageBox.information(
                self, ModuleConstants.QMESSAGEBOX_INFO,
                ModuleConstants.QMESSAGEBOX_CONTENTS_TEST_NORMAL,
                QMessageBox.Ok)
            self.test_result.test_conclusion = ModuleConstants.TESTRESULT_PASS
        else:
            QMessageBox.information(
                self, ModuleConstants.QMESSAGEBOX_INFO,
                ModuleConstants.TESTITEM_FILTER +
                ModuleConstants.QMESSAGEBOX_CONTENTS_TEST_ABNORMAL,
                QMessageBox.Ok)
            self.test_result.test_conclusion = ModuleConstants.TESTRESULT_FAIL
        self._signalTest.emit("test")
        self.accept()
        self.close()
コード例 #24
0
ファイル: history_widget.py プロジェクト: iclosure/carmonitor
 def buttonExportClicked(self):
     (filePaths, filter) = QFileDialog.getOpenFileNames(
         parent=self,
         caption="转换数据库文件为文本格式",
         directory=QApplication.applicationDirPath() + "/../data",
         filter="Database file (*.db * mdb)",
     )
     if not filePaths:
         return
     #
     if DatabaseMgr().convertToText(filePaths):
         QMessageBox.information(self, "格式转换", "转换成功!")
     else:
         QMessageBox.warning(self, "格式转换", "转换失败!")
コード例 #25
0
 def exchange_icon(self):
     fname = QFileDialog.getOpenFileName(
         self, '选择icon',
         Utils.get_full_path('games/' + self.game['id'] + '/icon/'),
         ("Images (*.png)"))
     if fname[0]:
         pix = QPixmap(fname[0])
         if pix.width() != 512 or pix.height() != 512:
             QMessageBox.warning(self, "警告", "必须上传512*512.png图片")
             return
         self.icon_img.setPixmap(pix)
         current_icon = Utils.get_full_path('games/' + self.game['id'] +
                                            '/icon/icon.png')
         if os.path.exists(current_icon):
             if os.path.samefile(os.path.dirname(fname[0]),
                                 os.path.dirname(current_icon)):
                 if not os.path.samefile(
                         fname[0], current_icon
                 ):  # 如果选中的,在game的icon目录下,但不是当前icon,则进行重命名
                     count = 0
                     temp = 'icon0.png'
                     while os.path.exists(
                             Utils.get_full_path('games/' +
                                                 self.game['id'] +
                                                 '/icon/' + temp)):
                         count += 1
                         temp = 'icon' + str(count) + '.png'
                     os.renames(
                         current_icon,
                         Utils.get_full_path('games/' + self.game['id'] +
                                             '/icon/' + temp))
                     os.renames(fname[0], current_icon)
                 else:  # 如果所选的是当前icon,不做处理
                     return
             else:  # 如果选中的不在game的icon目录下,则重命名当前icon,并将选中的icon复制到目录下作为当前icon
                 count = 0
                 temp = 'icon0.png'
                 while os.path.exists(
                         Utils.get_full_path('games/' + self.game['id'] +
                                             '/icon/' + temp)):
                     count += 1
                     temp = 'icon' + str(count) + '.png'
                 os.renames(
                     current_icon,
                     Utils.get_full_path('games/' + self.game['id'] +
                                         '/icon/' + temp))
                 Utils.copy_file(fname[0], current_icon)
         else:
             Utils.copy_file(fname[0], current_icon)
コード例 #26
0
 def startfusion(self):
     fps = self.ui.fps.text()
     picpath = self.ui.picpath.text()
     output = self.ui.outputpath.text()
     savename = self.ui.savename.text()
     if (fps != '') & (picpath != '') & (output != '') & (savename != ''):
         self.fusion_video(picpath=picpath,
                           output=output,
                           savename=savename,
                           fps=fps)
     else:
         QMessageBox.warning(self, 'Warning!',
                             'Make sure all the message correctly!',
                             QMessageBox.Yes | QMessageBox.No,
                             QMessageBox.Yes)
コード例 #27
0
 def select_channel(self):
     if 'apk' not in self.main_win.games[self.game_index]:
         QMessageBox.warning(self, "警告", "请先添加母包!")
         return
     channel = self.channels[self.clv.currentIndex().row()]
     name = self.main_win.games[
         self.game_index]['id'] + '-' + channel['channelId']
     if name in self.selected_name:
         return
     self.selected_name.append(name)
     self.cslv_model.setStringList(self.selected_name)
     package = {
         'game': self.main_win.games[self.game_index],
         'channel': channel
     }
     self.selected.append(package)
コード例 #28
0
    def load_zone_shape_fields(self, fields):
        """
            @summary: Loads zone shape fields combo
            @param fields: Zone shape fields
            @type fields: List object
        """

        if fields is None:
            QMessageBox.warning(None, "Zone Shape Fields",
                                "There are no fields to load.")
            print("There are no fields to load.")
        else:
            self.zones_shape_fields.setEnabled(True)
            self.zones_shape_fields.clear()
            self.zones_shape_fields.addItems(fields)
            print("")
コード例 #29
0
ファイル: make_brick.py プロジェクト: razman786/tigger
 def _fileSelected(self, filename, quiet=False):
     self.wokbtn.setEnabled(False)
     if not filename:
         return None
     # check that filename matches model
     if not os.path.samefile(self._model_dir, os.path.dirname(filename)):
         self.wfile.setFilename('')
         if not quiet:
             QMessageBox.warning(
                 self, "Directory mismatch",
                 """<P>The FITS file must reside in the same directory
       as the current sky model.</P>""")
         self.wfile.setDirectory(self._model_dir)
         return None
     # read fits file
     busy = BusyIndicator()
     try:
         input_hdu = pyfits.open(filename)[0]
         hdr = input_hdu.header
         # get frequency, if specified
         for axis in range(1, hdr['NAXIS'] + 1):
             if hdr['CTYPE%d' % axis].upper() == 'FREQ':
                 self.wfreq.setText(str(hdr['CRVAL%d' % axis] / 1e+6))
                 break
     except Exception as err:
         busy.reset_cursor()
         self.wfile.setFilename('')
         if not quiet:
             QMessageBox.warning(
                 self, "Error reading FITS",
                 "Error reading FITS file %s: %s" % (filename, str(err)))
         return None
     self.wokbtn.setEnabled(True)
     # if filename is not in model already, enable the "add to model" control
     for src in self.model.sources:
         if isinstance(getattr(src, 'shape', None), ModelClasses.FITSImage) \
                 and os.path.exists(src.shape.filename) and os.path.exists(filename) \
                 and os.path.samefile(src.shape.filename, filename):
             self.wadd.setChecked(True)
             self.wadd.setEnabled(False)
             self.wadd.setText("image already in sky model")
             break
     else:
         self.wadd.setText("add image to sky model")
     busy.reset_cursor()
     return filename
コード例 #30
0
ファイル: main.py プロジェクト: MeteorsHub/PyRender
 def on_clicked_action_open(self):
     filename = QFileDialog.getOpenFileName(self, 'Open .obj model file',
                                            r'../3d_object', '*.obj')[0]
     if not filename:
         return
     stat = self.renderer.open_obj_file(filename)
     if stat == Renderer.OPEN_FILE_SUCCESS:
         self.update_shader()
         return
     msg = "Failed opening '%s'. " % filename
     if stat == Renderer.OPEN_FILE_NOT_EXIST:
         msg += 'File do not exist.'
     if stat == Renderer.OPEN_FILE_IO_ERROR:
         msg += 'File io error.'
     if stat == Renderer.OPEN_FILE_SYNTAX_NOT_SUPPORT:
         msg += 'File syntax not support.'
     QMessageBox.warning(self, 'Failed Opening', msg)
コード例 #31
0
    def startPresentationFromFile(self):
        """ Logic of what happens if Start From File (F6) is pressed.

        Checks if a the instance has a valid stimulus file loaded already.
        If so the stimulus file (.csv) is read and the experiment is started
        according to it.
        """
        if hasattr(self, 'stimulusFilename'):
            if self.stimulusFilename is None:
                QMessageBox.warning(
                    None, 'Could not start the stimulus presentation.',
                    'No file has been loaded.')
                return
        else:
            QMessageBox.warning(None,
                                'Could not start the stimulus presentation.',
                                'No file has been loaded.')
            return

        self.showWidgets()

        with open(self.stimulusFilename, mode='r', newline='') as csv_file:
            csv_reader = csv.reader(csv_file, delimiter=',')
            # Identify the type of experiment from csv file
            firstrow = next(csv_reader)
            if len(firstrow) > 3:
                self.experimenttype = 'ERP'
                self.artifact_types = firstrow[3:]
            else:
                self.experimenttype = 'Artifact'

            self.stimuliList = []
            while True:
                try:
                    row = csv_reader.__next__()
                    self.stimuliList.append({
                        firstrow[0]: row[0],
                        firstrow[1]: row[1],
                        firstrow[2]: row[2]
                    })
                except StopIteration:
                    break
            if self.experimenttype == 'Artifact':
                self.artifact_types = [row['type'] for row in self.stimuliList]
            self.startPresentation()
コード例 #32
0
ファイル: main.py プロジェクト: robin88322/sania7
    def upload1(self):
        try:
            df = pd.read_csv(self.file.displayText(),
                             delimiter=',',
                             header=None)

            self.main_table.clear()

            self.main_table.setCornerButtonEnabled(False)
            #self.impulse_table.setCornerButtonEnabled(False)
            self.main_table.setColumnCount(len(df))
            #self.impulse_table.setColumnCount(len(df))
            self.main_table.setRowCount(len(df))
            #self.impulse_table.setRowCount(1)

            self.main_table.setSortingEnabled(False)

            for i in range(len(df)):

                #self.main_table.horizontalHeader.setDefaultSectionSize(60)
                item = QTableWidgetItem()
                self.main_table.setVerticalHeaderItem(i, item)
                item = self.main_table.verticalHeaderItem(i)
                item.setText(str(i + 1))
                self.main_table.setColumnWidth(i, 50)

                item = QTableWidgetItem()
                self.main_table.setHorizontalHeaderItem(i, item)
                item = self.main_table.horizontalHeaderItem(i)
                item.setText(str(i + 1))

            for i in range(len(df)):
                for j in range(len(df)):
                    item = QTableWidgetItem()
                    mmm = round(df.iloc[i, j], 3)
                    item.setText(str(mmm))
                    self.main_table.setItem(i, j, item)
                self.main_table.setColumnWidth(i, 50)
                self.main_table.setRowHeight(i, 50)
                #item = QTableWidgetItem()
                #item.setText(str(0))
                #self.impulse_table.setItem(0, i, item)
            #self.main_table.resizeRowsToContents()
        except:
            QMessageBox.warning(w, 'Error', 'Не вибраний існуючий файл')
コード例 #33
0
ファイル: mainwin.py プロジェクト: TwoManyHats/GuiScannos
    def maybeSave(self):
        if not self.textPane.document().isModified():
            return True

        ret = QMessageBox.warning(self, 'GuiScannos',
                'The document has been modified.\n'
                'Do you want to save your changes?',
                QMessageBox.Save | QMessageBox.Discard | QMessageBox.Cancel)

        if ret == QMessageBox.Save:
            return self.fileSave()

        if ret == QMessageBox.Cancel:
            return False

        return True
コード例 #34
0
 def _investigator_clicked(self, checked):
     grade = self.ui.gradeEdit.text()
     if (checked and grade < 13) or \
             (not checked and grade > 12):
         msg = 'Investigator with grade %d?' % (grade,)
         QMessageBox.warning(QMessageBox(), 'Input Warning', msg)
コード例 #35
0
ファイル: main_widget.py プロジェクト: iclosure/carmonitor
 def onButtonQuitClicked(self):
     if QMessageBox.warning(self, '警告', '你确定要退出软件吗?',
                            QMessageBox.Ok | QMessageBox.No) == QMessageBox.Ok:
         self.close()
コード例 #36
0
ファイル: TextGraphView.py プロジェクト: pydoted/dotEd
    def focusOutEvent(self, event):
        '''Handle focus out event.

        Argument(s):
        event (QFocusEvent): Focus event
        '''
        self.acceptUpdate = False

        # Create pydot graph from text
        pydotGraph = graph_from_dot_data(self.toPlainText())

        # If the pydot graph is valid we can rewrite the text and check changes
        if pydotGraph:
            # If attributes are in valid form
            message = self.checkItemsAttributes(pydotGraph.get_nodes(),
                                                pydotGraph.get_edges())
            if not message:
                oldNodes = self.nodes
                oldEdges = self.edges
                self.nodes = {}
                self.edges = {}
                self.rebuildTextModel(self.toPlainText(), pydotGraph)

                # Compare old and new text and send changes to the model
                # Add nodes added
                added = self.nodes.keys() - oldNodes.keys()
                for idNode in added:
                    self.controller.onCreateNode(idNode, self.nodes[idNode])

                # Edit nodes changed
                intersect = set(self.nodes.keys()).intersection(
                    set(oldNodes.keys()))
                for idNode in intersect:
                    if self.nodes[idNode] != oldNodes[idNode]:
                        self.controller.onEditNode(idNode, self.nodes[idNode])

                # Remove nodes deleted
                removed = oldNodes.keys() - self.nodes.keys()
                for idNode in removed:
                    self.controller.onRemoveNode(idNode)

                    # Delete edges which contain the node
                    edgeToRemove = []
                    for edge in self.edges:
                        if (idNode == self.edges[edge][EdgeArgs.sourceId] or
                                idNode == self.edges[edge][EdgeArgs.destId]):
                            edgeToRemove.append(edge)
                    self.acceptUpdate = True
                    for edge in edgeToRemove:
                        self.removeEdge({
                            EdgeArgs.id: edge,
                            EdgeArgs.sourceId:
                            self.edges[edge][EdgeArgs.sourceId],
                            EdgeArgs.destId:
                            self.edges[edge][EdgeArgs.destId]
                        })
                    self.acceptUpdate = False

                # Remove edges deleted
                removed = oldEdges.keys() - self.edges.keys()
                for idEdge in removed:
                    self.controller.onRemoveEdge(
                        oldEdges[idEdge][EdgeArgs.sourceId],
                        oldEdges[idEdge][EdgeArgs.destId])

                # Add edges added
                added = self.edges.keys() - oldEdges.keys()
                for idEdge in added:
                    nodeSource = self.edges[idEdge][EdgeArgs.sourceId]
                    nodeDest = self.edges[idEdge][EdgeArgs.destId]
                    self.controller.onCreateEdge(nodeSource, nodeDest)

                QTextEdit.focusOutEvent(self, event)

            # Some attributes are in invalid form: show an error window
            else:
                QMessageBox.warning(self, "Syntax error", message)
                self.setFocus()

        # Pydot graph invalid: show an error window
        else:
            QMessageBox.warning(self, "Syntax error",
                                "The dot structure is invalid.")
            self.setFocus()

        self.acceptUpdate = True