Ejemplo n.º 1
0
Archivo: main.py Proyecto: nwagu/pablo
    def loadFile(self, fileName):
        file = QFile(fileName)
        if not file.open(QFile.ReadOnly | QFile.Text):
            QMessageBox.warning(
                self, "Pablo",
                "Cannot read file %s:\n%s." % (fileName, file.errorString()))
            return

        inFile = QTextStream(file)
        QApplication.setOverrideCursor(Qt.WaitCursor)

        if (QFileInfo(fileName).suffix() in ("pbl")):
            self.paged_text_edit.setHtml(inFile.readAll())
        elif (QFileInfo(fileName).suffix() in ("html")):
            # FIXME: Prevent double setting of the paged_text_edit where necessary
            # FIXME: Double setting may cause bad UX with large files
            self.paged_text_edit.setHtml(inFile.readAll())
            cleanHtml = HTMLCleaner.clean(
                self.paged_text_edit.toHtml()).decode("utf-8")
            self.paged_text_edit.setHtml(cleanHtml)
        else:
            self.paged_text_edit.setPlainText(inFile.readAll())

        QApplication.restoreOverrideCursor()

        self.setCurrentFile(fileName)
        self.statusBar.writeMessageOnStatus("File loaded", 2000)
Ejemplo n.º 2
0
    def __init__(self, app):
        super(Ui, self).__init__()
        self.categories = []
        self.current_view = StepViews.CATEGORY_VIEW
        self.app = app

        ui_file_name = "view.ui"
        ui_file = QFile(ui_file_name)

        if not ui_file.open(QIODevice.ReadOnly):
            print("Cannot open {}: {}".format(ui_file_name,
                                              ui_file.errorString()))
            sys.exit(-1)

        loader = QUiLoader()
        self.window = loader.load(ui_file)
        ui_file.close()

        if not self.window:
            print(loader.errorString())
            sys.exit(-1)

        self.auth_manager = AuthManager(self.app)
        self.auth_manager.access_token_signal.connect(self.get_access_token)

        self.button = self.window.findChild(QPushButton, "loginToSpotify")
        self.button.clicked.connect(self.authenticate)

        self.back_button = self.window.findChild(QPushButton, "back")
        self.back_button.clicked.connect(self.setup_back_view)
Ejemplo n.º 3
0
def load_ui_file(path: str):
    """
    Loads the main ".ui"-file from the "ui"-folder and returns the QMainWindow from it.
    Also initializes an instance of the "ui"-class.

    Arguments:
        path : the path to the ui file which should be loaded

    Returns:
        QWindow: The loaded Window

    """

    ui_file = QFile(path)

    if not ui_file.open(QIODevice.ReadOnly):
        print("Cannot open {}: {}".format(path, ui_file.errorString()))
        sys.exit(-1)

    loader = QUiLoader()
    window = loader.load(ui_file)
    ui_file.close()

    if not window:
        print(loader.errorString())
        sys.exit(-1)

    return window
Ejemplo n.º 4
0
class View(QMainWindow):
    def __init__(self, parent=None):
        QMainWindow.__init__(self)

        self.load_view()
        self.central_widget.file_chooser.clicked.connect(self.choose_file)

        self.setWindowTitle("Glucose Level Converter")
        self.setCentralWidget(self.central_widget)
        self.show()

    def load_view(self):
        self.ui_file = QFile(UI_FILE_NAME)
        if not self.ui_file.open(QIODevice.ReadOnly):
            print("Cannot open {}: {}".format(UI_FILE_NAME,
                                              self.ui_file.errorString()))
            sys.exit(-1)

        self.loader = QUiLoader()
        self.central_widget = self.loader.load(self.ui_file)
        self.ui_file.close()

        if not self.central_widget:
            print(self.loader.errorString())
            sys.exit(-1)

    # Returns user inputs if available
    def get_settings(self):
        settings = {}
        settings['chosen_filename'] = self.chosen_filename
        settings['sample_rate'] = (int)(
            self.central_widget.sample_rate.currentText())
        settings['buffer_size'] = (int)(
            self.central_widget.buffer_size.currentText())
        settings['window_size'] = self.central_widget.window_size.value()
        settings['is_wavetable'] = self.central_widget.is_wavetable.isChecked()
        settings['window_type'] = self.central_widget.window_type.currentText()
        settings['amt_output'] = self.central_widget.amt_files.value()

        chosen_path, filter_type = QFileDialog.getSaveFileName(
            self.central_widget, 'Save project', filter="DIA project")
        if chosen_path:
            chosen_path += "/samples"
            Path(chosen_path).mkdir(parents=True, exist_ok=True)
            settings['output_filename'] = "{}/sample_{}".format(
                chosen_path, '{}.wav')
            return settings
        else:
            return None

    def choose_file(self):
        self.chosen_filename, filter_type = QFileDialog.getOpenFileName(
            self.central_widget, 'Open file', filter="XLS files (*.xls)")

        if self.chosen_filename != "":
            self.central_widget.filename.setText(
                Path(self.chosen_filename).name)
            change_enabled_settings(self.central_widget)
    def testPhrase(self):
        #Test loading of quote.txt resource
        f = open(adjust_filename('quoteEnUS.txt', __file__), "r")
        orig = f.read()
        f.close()

        f = QFile(':/quote.txt')
        f.open(QIODevice.ReadOnly)  #|QIODevice.Text)
        print("Error:", f.errorString())
        copy = f.readAll()
        f.close()
        self.assertEqual(orig, copy)
Ejemplo n.º 6
0
    def testPhrase(self):
        #Test loading of quote.txt resource
        f = open(adjust_filename('quoteEnUS.txt', __file__), "r")
        orig = f.read()
        f.close()

        f = QFile(':/quote.txt')
        f.open(QIODevice.ReadOnly) #|QIODevice.Text)
        print("Error:", f.errorString())
        copy = f.readAll()
        f.close()
        self.assertEqual(orig, copy)
Ejemplo n.º 7
0
    def load(self):
        filename, _ = QFileDialog.getOpenFileName(self)

        if not filename:
            return

        file = QFile(filename)
        if not file.open(QFile.ReadOnly | QFile.Text):
            QMessageBox.warning(
                self, "Panel Słoneczny", "nie mógł wczytać pliku %s:\n%s." %
                (filename, file.errorString()))
            return

        inf = QTextStream(file)
        #QApplication.setOverrideCursor(QtCore.Qt.WaitCursor)
        self.textEdit.setPlainText(inf.readAll())
        #with open(file, 'r') as input:
        with open('Breslau.txt', 'r') as f:
            # f = self.nameEdit.text()
            # f = self.latitudeEdit.text()
            # f = self.longitudeEdit.text()
            # f = self.dateandtimeEdit.text()
            # print(self.nameEdit.text())
            # print(self.latitudeEdit.text())
            # print(self.longitudeEdit.text())
            # print(self.dateandtimeEdit.text())
            # for line in f:
            #      print (line, end='')
            f_name = f.readline()
            #f_name = self.nameEdit.text()
            self.text1.setText(f_name)
            f_lat = f.readline()
            f_lat = self.latitudeEdit.text()
            f_lon = f.readline()
            f_lon = self.longitudeEdit.text()
            f_dnt = f.readline()
            f_dnt = self.dateandtimeEdit.text()

            # for line in f:
            #     if 'name' in line:
            #         self.text1.setText(line)
            #if 'lat' in line:

        #self.text1.setText(self.textEdit.setPlainText(inf.readAll()))
        #self.text1.setText(self.nameEdit.text())

        #QApplication.restoreOverrideCursor()

        #self.setCurrentFile(filename)

        self.statusBar().showMessage("Wczytano plik", 2000)
Ejemplo n.º 8
0
    def runReport(self, pid, method, par):
        self.boolDirect = True
        self.mtypeCall = "report"
        self.mpid = pid
        self.mmethod = method
        self.mparams = par
        #
        bparams = self.prepareParams()
        request = self.prepareRequest()
        #
        reply = self.data_request(request, bparams)
        data = reply.readAll()
        parseError = QJsonParseError()
        resultObject = {}
        resultObject["data"] = "error"
        document = QJsonDocument.fromJson(data, parseError)
        if parseError.error == True:
            resultObject["data"] = "error"
        else:
            if document.isObject():
                jv = document.object()
                if jv.__contains__(
                        "result") == True and jv["result"].__class__() == []:
                    #tryton 4.0
                    #'result': ['pdf', {'base64':wwwwww, '__class__':'bytes'}, False,'Printis']
                    jre = jv["result"]
                    namesecs = "tryton_" + self.mpid + str(
                        QDateTime.currentMSecsSinceEpoch()) + "." + jre[0]

                    mdir = QDir(self.mDir + QDir.separator() + "tempReports")
                    if mdir.exists() == False:
                        s = QDir(self.mDir)
                        s.mkdir("tempReports")

                    filename = self.mDir + QDir.separator(
                    ) + "tempReports" + QDir.separator() + namesecs
                    file = QFile(filename)
                    if file.open(QIODevice.WriteOnly) == False:
                        #error
                        self.signalResponse.emit(self.mpid, 7, {})
                        print("error", filename, file.errorString())
                    else:
                        bafile = QByteArray.fromBase64(
                            jre[1]["base64"].encode())
                        file.write(bafile)
                        file.close()
                        QDesktopServices.openUrl(QUrl(filename))
            else:
                if document.isArray() == True:
                    self.signalResponse.emit(self.mpid, 7, {})
        self.processingData(data, reply)
Ejemplo n.º 9
0
 def __init__(self):
     ui_file_name = "dialog.ui"
     ui_file = QFile(ui_file_name)
     if not ui_file.open(QIODevice.ReadOnly):
         print("Cannot open {}: {}".format(ui_file_name,
                                           ui_file.errorString()))
         sys.exit(-1)
     loader = QUiLoader()
     self.window = loader.load(ui_file)
     ui_file.close()
     if not self.window:
         print(loader.errorString())
         sys.exit(-1)
     self.window.show()
Ejemplo n.º 10
0
    def saveFile(self, fileName):
        file = QFile(fileName)

        if not file.open(QFile.WriteOnly | QFile.Text):
            QMessageBox.warning(self, "MDI",
                    "Cannot write file %s:\n%s." % (fileName, file.errorString()))
            return False

        outstr = QTextStream(file)
        QApplication.setOverrideCursor(Qt.WaitCursor)
        outstr << self.toPlainText()
        QApplication.restoreOverrideCursor()

        self.setCurrentFile(fileName)
        return True
Ejemplo n.º 11
0
 def loadFile(self, fileName):
     file = QFile(fileName)
     if not file.open(QFile.ReadOnly | QFile.Text):
         QMessageBox.warning(self, self.tr("Application"), self.tr("Cannot read file "
             "{}:\n{}.".format(fileName, file.errorString())))
         return
 
     inStream = QTextStream(file)
     QApplication.setOverrideCursor(QtGui.Qt.WaitCursor)
     self.textEdit.setPlainText(inStream.readAll())
     print(inStream.readAll())
     QApplication.restoreOverrideCursor()
 
     self.setCurrentFile(fileName)
     self.statusBar().showMessage(self.tr("File loaded"), 2000)
Ejemplo n.º 12
0
def Build_Widget_From_Ui_File(ui_file_name, loader):
    """"""
    ui_file = QFile(ui_file_name)

    if not ui_file.open(QIODevice.ReadOnly):
        print("Cannot open {}: {}".format(ui_file_name, ui_file.errorString()))
    else:
        widget = loader.load(ui_file, None)
        ui_file.close()
        if not widget:
            print(loader.errorString())
            return None
        else:
            return widget
    return None
Ejemplo n.º 13
0
    def saveFile(self, fileName):
        file = QFile(fileName)

        if not file.open(QFile.WriteOnly | QFile.Text):
            QMessageBox.warning(
                self, "MDI",
                "Cannot write file %s:\n%s." % (fileName, file.errorString()))
            return False

        outstr = QTextStream(file)
        QApplication.setOverrideCursor(Qt.WaitCursor)
        outstr << self.toPlainText()
        QApplication.restoreOverrideCursor()

        self.setCurrentFile(fileName)
        return True
Ejemplo n.º 14
0
    def loadFile(self, fileName):
        file = QFile(fileName)
        if not file.open(QFile.ReadOnly | QFile.Text):
            QMessageBox.warning(self, "MDI",
                    "Cannot read file %s:\n%s." % (fileName, file.errorString()))
            return False

        instr = QTextStream(file)
        QApplication.setOverrideCursor(Qt.WaitCursor)
        self.setPlainText(instr.readAll())
        QApplication.restoreOverrideCursor()

        self.setCurrentFile(fileName)

        self.document().contentsChanged.connect(self.documentWasModified)

        return True
Ejemplo n.º 15
0
    def loadFile(self, fileName):
        file = QFile(fileName)
        if not file.open(QFile.ReadOnly | QFile.Text):
            QMessageBox.warning(self, "MDI",
                    "Cannot read file %s:\n%s." % (fileName, file.errorString()))
            return False

        instr = QTextStream(file)
        QApplication.setOverrideCursor(Qt.WaitCursor)
        self.setPlainText(instr.readAll())
        QApplication.restoreOverrideCursor()

        self.setCurrentFile(fileName)

        self.document().contentsChanged.connect(self.documentWasModified)

        return True
Ejemplo n.º 16
0
 def saveFile(self, fileName):
     file = QFile(fileName)
     if not file.open(QFile.WriteOnly | QFile.Text):
         QMessageBox.warning(self, self.tr("Application"),
                              self.tr("Cannot write file %1:\n%2.")
                              .arg(fileName)
                              .arg(file.errorString()))
         return False
 
     out = QTextStream(file)
     QApplication.setOverrideCursor(QtGui.Qt.WaitCursor)
     print (self.textEdit.toPlainText())
     out << self.textEdit.toPlainText()
     QApplication.restoreOverrideCursor()
 
     self.setCurrentFile(fileName)
     self.statusBar().showMessage(self.tr("File saved"), 2000)
     return True
Ejemplo n.º 17
0
    def save(self):
        filename, _ = QFileDialog.getSaveFileName(self,
                "Choose a file name", '.', "HTML (*.html *.htm)")
        if not filename:
            return

        file = QFile(filename)
        if not file.open(QFile.WriteOnly | QFile.Text):
            QMessageBox.warning(self, "Dock Widgets",
                    "Cannot write file %s:\n%s." % (filename, file.errorString()))
            return

        out = QTextStream(file)
        QApplication.setOverrideCursor(Qt.WaitCursor)
        out << self.textEdit.toHtml()
        QApplication.restoreOverrideCursor()

        self.statusBar().showMessage("Saved '%s'" % filename, 2000)
Ejemplo n.º 18
0
    def __init__(self):
        ui_file_name = "gui.ui"
        ui_file = QFile(ui_file_name)
        if not ui_file.open(QIODevice.ReadOnly):
            print("Cannot open {}: {}".format(ui_file_name,
                                              ui_file.errorString()))
            sys.exit(-1)
        loader = QUiLoader()
        self.window = loader.load(ui_file)
        ui_file.close()

        if not self.window:
            print(loader.errorString())
            sys.exit(-1)
        self.window.show()

        self.turn = 0

        self.board = np.array([[0, 0, 0], [0, 0, 0], [0, 0, 0]])

        #buttons
        self.window.ox_1.clicked.connect(
            lambda: self.turns('1'))  #tu musi byc lambda
        self.window.ox_2.clicked.connect(lambda: self.turns('2'))
        self.window.ox_3.clicked.connect(lambda: self.turns('3'))
        self.window.ox_4.clicked.connect(lambda: self.turns('4'))
        self.window.ox_5.clicked.connect(lambda: self.turns('5'))
        self.window.ox_6.clicked.connect(lambda: self.turns('6'))
        self.window.ox_7.clicked.connect(lambda: self.turns('7'))
        self.window.ox_8.clicked.connect(lambda: self.turns('8'))
        self.window.ox_9.clicked.connect(lambda: self.turns('9'))

        #reset
        self.window.pbReset.clicked.connect(lambda: self.reset())

        #set winner labels
        self.window.player1_points.setText("0")
        self.window.player2_points.setText("0")
        self.player_1_points = 0
        self.player_2_points = 0
Ejemplo n.º 19
0
Archivo: main.py Proyecto: nwagu/pablo
    def saveFile(self, fileName):
        file = QFile(fileName)
        if not file.open(QFile.WriteOnly | QFile.Text):
            QMessageBox.warning(
                self, "Pablo",
                "Cannot write file %s:\n%s." % (fileName, file.errorString()))
            return False

        outFile = QTextStream(file)
        QApplication.setOverrideCursor(Qt.WaitCursor)

        if (QFileInfo(fileName).suffix() in ("pbl", "html")):
            # outFile << self.paged_text_edit.toHtml()
            outFile << HTMLCleaner.clean(self.paged_text_edit.toHtml())
        else:
            outFile << self.paged_text_edit.toPlainText()

        QApplication.restoreOverrideCursor()

        self.setCurrentFile(fileName)
        self.statusBar.showMessage("File saved", 2000)
        return True
Ejemplo n.º 20
0
    def load_file(self, file_name):
        """
        Load file into current instance.

        :param file_name: whatever QFileDialog.getOpenFileName returns (abs or canonical path?), or canonical
        :return:
        """
        file = QFile(file_name)
        if not file.open(QFile.ReadOnly | QFile.Text):
            QMessageBox.warning(
                self, "OneHandTextEdit",
                "Cannot read file {}:\n{}.".format(file_name,
                                                   file.errorString()))
            return

        instr = QTextStream(file)
        QApplication.setOverrideCursor(Qt.WaitCursor)
        self.text_edit.setPlainText(instr.readAll())
        QApplication.restoreOverrideCursor()

        self.set_current_file(file_name)
        self.statusBar().showMessage("File loaded", 2000)
Ejemplo n.º 21
0
 def importDips(self, fileURLsStr):
     self.dipModel.reset()
     for filePath in fileURLsStr:
         file = QFile(QUrl(filePath).toLocalFile())
         if (not file.open(QIODevice.ReadOnly)):
             print("impossible to open file \" " + filePath +
                   " \", error is:" + file.errorString())
             continue
         while not file.atEnd():
             line = str(file.readLine(), encoding='utf-8')
             lineCells = line.split(',')
             try:
                 float(lineCells[0])
             except ValueError:
                 continue
             dip = Dipole.initByComposent(xPos=float(lineCells[0]),
                                          yPos=float(lineCells[1]),
                                          zPos=float(lineCells[2]),
                                          quaternion=anglesSphToQuaternion(
                                              float(lineCells[3]),
                                              float(lineCells[4])),
                                          parent=self.dipModel)
             self.dipModel.append(dip)
Ejemplo n.º 22
0
def ui_file_tutorial_2():
    from PySide2.QtCore import QFile, QIODevice
    from PySide2.QtUiTools import QUiLoader

    app = QApplication(sys.argv)

    ui_file_name = './mainwindow.ui'

    ui_file = QFile(ui_file_name)
    if not ui_file.open(QIODevice.ReadOnly):
        print('Cannot open {}: {}'.format(ui_file_name, ui_file.errorString()))
        sys.exit(-1)

    loader = QUiLoader()
    window = loader.load(ui_file)
    ui_file.close()

    if window:
        window.show()

        sys.exit(app.exec_())
    else:
        print(loader.errorString())
        sys.exit(-1)
Ejemplo n.º 23
0
    def save(self):
        filename, _ = QFileDialog.getSaveFileName(self, "Zapisywanie jako",
                                                  '.',
                                                  "Dokumenty textowe(*.txt)")
        if not filename:
            return

        file = QFile(filename)
        if not file.open(QFile.WriteOnly | QFile.Text):
            QMessageBox.warning(
                self, "Panel Słoneczny", "nie mógł zapisać pliku %s:\n%s." %
                (filename, file.errorString()))
            return

        out = QTextStream(file)
        #QApplication.setOverrideCursor(Qt.WaitCursor)
        #out << self.textEdit.toPlainText()
        out << self.nameEdit.text() + "\n" + self.latitudeEdit.text(
        ) + "\n" + self.longitudeEdit.text(
        ) + "\n" + self.dateandtimeEdit.text()
        #out << "self.text1.setText("+self.nameEdit.text()+")"
        #QApplication.restoreOverrideCursor()

        self.statusBar().showMessage("Zapisano w '%s'" % filename, 2000)
Ejemplo n.º 24
0
        window.label_2.setText("Folder where to store cards")
        window.label_3.setText("Zip or unzip required !!!")
        window.pushButton.setText("Русский")
        window.pushButton_2.setText("Start")
        language = "RU"


if __name__ == "__main__":
    global window

    app = QApplication(sys.argv)

    ui_file_name = put + "222.ui"
    ui_file = QFile(ui_file_name)
    if not ui_file.open(QIODevice.ReadOnly):
        print("Cannot open {}: {}".format(ui_file_name, ui_file.errorString()))
        sys.exit(-1)
    loader = QUiLoader()
    window = loader.load(ui_file)
    ui_file.close()
    if not window:
        print(loader.errorString())
        sys.exit(-1)
    sas2()
    window.show()
    window.pushButton_2.clicked.connect(sas)
    window.pushButton.clicked.connect(sas2)
    window.progressBar.setValue(0)

    window.pushButton_3.clicked.connect(ButtonWay)
    window.pushButton_4.clicked.connect(ButtonWay_2)
Ejemplo n.º 25
0
    def __init__(self):
        # 加载 ui
        ui_file_name = "./UI/labelKPs.ui"
        ui_file = QFile(ui_file_name)
        if not ui_file.open(QIODevice.ReadOnly):
            print("Cannot open {}: {}".format(ui_file_name, ui_file.errorString()))
            sys.exit(-1)
        loader = QUiLoader()
        self.ui = loader.load(ui_file)
        ui_file.close()
        if not self.ui:
            print(loader.errorString())
            sys.exit(-1)

        # self.ui = QUiLoader().load("./UI/labelKPs.ui")
        self.ui.setWindowIcon(QIcon('hand_icon.ico'))

        # 定义控件,方便补全代码
        self.statusBar = self.ui.statusbar  # 状态条,用于显示提示信息,可设置信息时效ms
        self.statusLabel = QLabel("源码:")
        self.statusURL = QLabel("<a href=\"https://github.com/Runki2018/LabelKPs\">访问GitHub")
        self.statusURL.setOpenExternalLinks(True)
        self.statusBar.addPermanentWidget(self.statusLabel)
        self.statusBar.addPermanentWidget(self.statusURL)

        # button:
        self.loadButton = self.ui.loadButton  # 图片加载目录
        self.jsonButton = self.ui.jsonButton  # 选择json标注文件
        self.jsonButton.setEnabled(False)  # 只有选择了图像加载路径后,才能选择标注保持路径
        self.saveButton = self.ui.saveButton  # 保存标注——当图片数量大的时候,保存时间较慢,有几秒。
        self.preButton = self.ui.preButton  # 上一张
        self.nextButton = self.ui.nextButton  # 下一张
        self.goButton = self.ui.goButton  # 跳转
        self.buttonEnable = True  # 在点击加载目录前,其他切换图片状态的button处于禁用状态。
        # self.reverseButtonEnable()  # 控件状态取反
        self.setButtonDisable()

        # radiobutton:
        # self.bbox_radioButton = self.ui.bbox_radioButton  # 画边界框单选框
        # self.kps_radioButton = self.ui.kps_radioButton  # 画关键点单选框
        self.show_radioButton = self.ui.radioButton_show  # 显示骨架
        self.hide_radioButton = self.ui.radioButton_hide  # 隐藏骨架

        # checkBox
        self.is_occlusion = self.ui.is_occlusion  # 存在部分关键点被遮挡,默认为真
        self.blur = self.ui.blur  # 手部是否模糊,默认为假

        # listWidget:
        self.listWidget_points = self.ui.listWidget_points  # 显示当前关键点坐标的列表框
        self.listWidget_files = self.ui.listWidget_files  # 显示图片文件的列表框

        # graphicsView:
        self.graphicsView = self.ui.graphicsView  # 图片框
        self.scene = MyScene(self.listWidget_points)  # 场景,把列表控件传入,便于更新列表项,也可以用信号进制实现
        self.graphicsView.setScene(self.scene)

        # 滚动条
        self.scrollBar = self.ui.horizontalScrollBar  # 用于调整骨架线条的粗细或透明度
        self.scrollBar.setMaximum(20)  # length = Max - Min + PageStep
        self.scrollBar.setMinimum(1)
        self.scrollBar.setPageStep(1)
        self.scrollBar.setValue(self.scene.bonePen_width)  # 设滚动条初始位置 与 场景骨架笔宽初始值一致

        # label:
        self.process_number = self.ui.number_label  # 显示当前已处理的图片数/总图片数
        self.example_caption = self.ui.label_caption
        self.example_picture = self.ui.label_picture
        self.example_caption.setText("手腕1个点,其余手指各4个点,共21个点。\n"
                                     "改点的两种鼠标操作方式:\n 1、左键点击后拖拽,释放左键\n"
                                     " 2、按左键点击选中,鼠标移动至合适位置后,按右键释放")
        self.example_picture.setPixmap(QPixmap("./Example.png"))
        self.label_classes = self.ui.label_classes

        # lineEdit
        self.lineEdit = self.ui.lineEdit  # 输入框,用于输入将跳转的图片数

        # 定义事件
        self.loadButton.clicked.connect(self.load_dir)  # 加载图片文件夹
        self.jsonButton.clicked.connect(self.chooseLabelFile)  # 选择标注文件
        self.saveButton.clicked.connect(self.save_label)  # 保存标注文件
        self.preButton.clicked.connect(self.pre_img)  # 上一张图片
        self.nextButton.clicked.connect(self.next_img)  # 下一张图片
        self.goButton.clicked.connect(self.go_img)  # 下一张图片
        self.show_radioButton.clicked.connect(self.showBoneLine)  # 显示骨架
        self.hide_radioButton.clicked.connect(self.hideBoneLine)  # 隐藏骨架
        self.scrollBar.valueChanged.connect(self.scrollEvent)  # 调整骨架粗细

        # 加载和保持标注信息
        self.label = None

        # 定义实例变量
        self.load_dirpath = ""
        self.save_file = ""
        self.img_number = 0  # 图片总数
        self.index = 0  # 已处理的图片数
        self.points_list = []  # 当前手的关键点列表(未经修改)
Ejemplo n.º 26
0
    def rechargeNet(self, preferences, username):
        #version 1.1 up thesamodule
        data = self.m_qjsonnetwork.callDirect(
            "version internal", "model.thesamodule.config.search_read",
            [[], 0, 1, [], ["internal_version"], preferences])
        if not data["data"] == "error":
            self.internal_version = data["data"]["result"][0][
                "internal_version"]
            if float(self.internal_version) > 1.0:
                data = self.m_qjsonnetwork.callDirect(
                    "cachedel", "model.thesamodule.config.search_read",
                    [[], 0, 1, [], ["deletecache"], preferences])
                if not data["data"] == "error":
                    if data["data"]["result"][0]["deletecache"] == True:
                        self.actionCache_ = "deleteOnCompleted"
                    else:
                        self.actionCache_ = "notDelete"
        sysdir = QDir(self.mDir + QDir.separator() + _dirSystem)
        DIR_QML_SYS = sysdir.path()
        DIR_QML_SYS_LOST = DIR_QML_SYS + QDir.separator() + "lost"
        sysdirlost = QDir(DIR_QML_SYS_LOST)
        #revisar folder systemnet
        if sysdir.exists() == False:
            s = QDir(self.mDir)
            s.mkdir(_dirSystem)
        #revisar folder systemnet lost
        if sysdirlost.exists() == False:
            sl = QDir(DIR_QML_SYS)
            sl.mkdir("lost")
        #find all files en folder net
        listSysFiles = os.listdir(DIR_QML_SYS)
        if "lost" in listSysFiles:
            listSysFiles.remove("lost")
        #
        data = {}
        data["data"] = "error"
        if float(self.internal_version) > 1.1:
            data = self.m_qjsonnetwork.callDirect(
                "findforuser", "model.thesamodule.usersfolder.search_read", [[
                    "AND", ["users.user.name", "=", username],
                    ["activefolder", "=", True]
                ], 0, 1, [], ["qmlfiles"], preferences])
            if not data["data"] == "error":
                result = data["data"]["result"]
                if len(result) > 0:
                    idfiles = result[0]["qmlfiles"]
                    data = self.m_qjsonnetwork.callDirect(
                        "rechargeNetStep1",
                        "model.thesamodule.thesamodule.read",
                        [idfiles, [
                            "checksum",
                            "filename",
                        ], preferences])
                    if len(idfiles) == 0:
                        self.m_qjsonnetwork.signalResponse.emit(
                            "systemnet", 15, {"noqmlfiles": ""})
                else:  #buscar default
                    data = self.m_qjsonnetwork.callDirect(
                        "findforuser",
                        "model.thesamodule.usersfolder.search_read", [[
                            "AND", ["type", "=", "default"],
                            ["activefolder", "=", True]
                        ], 0, 1, [], ["qmlfiles"], preferences])
                    if not data["data"] == "error":
                        result = data["data"]["result"]
                        if len(result) > 0:
                            idfiles = result[0]["qmlfiles"]
                            data = self.m_qjsonnetwork.callDirect(
                                "rechargeNetStep1",
                                "model.thesamodule.thesamodule.read", [
                                    idfiles, [
                                        "checksum",
                                        "filename",
                                    ], preferences
                                ])
                            if len(idfiles) == 0:
                                self.m_qjsonnetwork.signalResponse.emit(
                                    "systemnet", 15, {"noqmlfiles": ""})
                        else:
                            self.m_qjsonnetwork.signalResponse.emit(
                                "systemnet", 12, {"noqmlfiles": ""})
                    else:
                        self.m_qjsonnetwork.signalResponse.emit(
                            "systemnet", 13, {"error": ""})
            else:
                self.m_qjsonnetwork.signalResponse.emit(
                    "systemnet", 13, {"error": ""})

        else:
            data = self.m_qjsonnetwork.callDirect(
                "rechargeNetStep1",
                "model.thesamodule.thesamodule.search_read",
                [[], 0, 1000, [], ["checksum", "filename"], preferences])
        if not data["data"] == "error":
            resultnet = data["data"]["result"]
            mapnet = {}
            mapids = {}
            listNetFiles = []
            for file in resultnet:
                mapnet[file["filename"]] = file["checksum"]
                mapids[file["filename"]] = file["id"]
                listNetFiles.append(file["filename"])
            #buscar faltantes en system y los updates
            #buscar los que ya no deben estar
            mapsysnet = {}
            listToUpdate = set()  #new or update
            listToErase = []
            for file in listSysFiles:
                try:
                    with open(DIR_QML_SYS + QDir.separator() + file,
                              "rb") as binary_file:
                        data = binary_file.read()
                        chek = hashlib.md5(data).hexdigest()
                        mapsysnet[file] = chek
                except:
                    listToUpdate.add(file)

            for file in listNetFiles:
                if file in listSysFiles:
                    if mapnet[file] != mapsysnet[file]:
                        listToUpdate.add(file)  # update
                else:
                    listToUpdate.add(file)  # new
            for file in listSysFiles:
                if not file in listNetFiles:
                    listToErase.append(file)  # erase

            listToUpdate = list(listToUpdate)
            ids = []
            for file in listToUpdate:
                ids.append(mapids[file])

            data = self.m_qjsonnetwork.callDirect(
                "rechargeNetStep2", "model.thesamodule.thesamodule.read",
                [ids, [
                    "filebinary",
                    "filename",
                ], preferences])
            errors = []
            if not data["data"] == "error":
                resultnet = data["data"]["result"]
                for file in resultnet:
                    filename = DIR_QML_SYS + QDir.separator(
                    ) + file["filename"]
                    qfile = QFile(filename)
                    if qfile.open(QIODevice.WriteOnly) == False:
                        errors.append(filename)
                        print("error", filename, qfile.errorString())
                    else:
                        print("update", file["filename"])
                        bafile = QByteArray.fromBase64(
                            file["filebinary"]["base64"].encode())
                        qfile.write(bafile)
                        qfile.close()
            if len(errors) > 0:
                self.m_qjsonnetwork.signalResponse.emit(
                    "systemnet", 33, {"error": errors})
                return False

            #erase
            for file in listToErase:
                print("moviendo", file)
                shutil.move(DIR_QML_SYS + QDir.separator() + file,
                            DIR_QML_SYS_LOST + QDir.separator() + file)
            return True
        else:
            #erase all files, no conexion con thesa module
            for file in listSysFiles:
                print("moviendo", file)
                shutil.move(DIR_QML_SYS + QDir.separator() + file,
                            DIR_QML_SYS_LOST + QDir.separator() + file)
            self.m_qjsonnetwork.signalResponse.emit("systemnet", 34,
                                                    {"error": ""})
            return False