Exemple #1
0
    def _on_add_click(self):

        # https://doc.qt.io/qtforpython/PySide6/QtWidgets/QFileDialog.html#PySide6.QtWidgets.PySide6.QtWidgets.QFileDialog.getOpenFileNames
        self.refPaths, selectedFilter = QFileDialog.getOpenFileNames(
            caption="Select one or more files to open",
            filter="PDF (*.pdf)",
            dir="Desktop")
        # add refname to the item container
        self.refNames = []
        for refPath in self.refPaths:

            # widgetres = []
            # # 获取listwidget中条目数
            # count = window.refList.count()
            # 遍历listwidget中的内容
            # for i in range(count):
            #     widgetres.append(self.listWidget.item(i).text())
            # print(widgetres)
            refName = refPath.split('/')[-1]
            if refName not in self.refNames:
                # https://doc.qt.io/qtforpython/PySide6/QtWidgets/QListWidget.html
                self.window.refListView.addItem(refName)
                self.refNames.append(refName)
            else:
                continue

        self.update()
Exemple #2
0
    def select_files(self):
        self.file_list, _ = QFileDialog.getOpenFileNames(
            self,
            caption=self.select_file_dlg_title,
            filter=self.select_file_dlg_filter)
        if len(self.file_list) == 0:
            return

        self.txtInputFile.setText(';'.join(self.file_list))
Exemple #3
0
 def openFileNamesDialog(self):
     options = QFileDialog.Options()
     options |= QFileDialog.DontUseNativeDialog
     files, _ = QFileDialog.getOpenFileNames(
         self,
         "QFileDialog.getOpenFileNames()",
         "",
         "All Files (*);;Python Files (*.py)",
         options=options)
     if files:
         print(files)
Exemple #4
0
    def __init__(self):
        super().__init__()

        self.setGeometry(50, 50, 200, 200)
        self.setWindowTitle('Awesome File Manager')

        ui_file = QFile("mainwindow.ui")
        ui_file.open(QFile.ReadOnly)

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

        self.window.comboBox.setItemText(0, 'first filter')

        files = QFileDialog.getOpenFileNames(self)
        btn_file = QPushButton('Open', self)
        for file in files[0]:
            btn_file.clicked.connect(main(file))
Exemple #5
0
def open_encrypt_files_dialog(key: Key,
                              progress_title='正在处理',
                              caption_files='选择需要加密的文件',
                              caption_output_dir='选择输出目录',
                              file_filter='All Files (*);;Text Files (*.txt)',
                              parent=None):
    file_list, _ = QFileDialog.getOpenFileNames(parent,
                                                caption=caption_files,
                                                filter=file_filter)

    if len(file_list) == 0:
        return

    dir_path = QFileDialog.getExistingDirectory(None, caption_output_dir,
                                                "C:/")

    if dir_path == '' or not os.path.exists(dir_path):
        return

    pd = QProgressDialog(parent)
    pd.setMinimumDuration(1000)
    pd.setAutoClose(True)
    pd.setAutoReset(False)
    pd.setLabelText('正在处理')
    pd.setCancelButtonText('取消')
    pd.setRange(0, len(file_list))
    pd.setValue(0)
    pd.setWindowModality(Qt.WindowModal)
    pd.show()

    try:
        for index, file_path in enumerate(file_list):

            if pd.wasCanceled():
                break

            pd.setLabelText('正在处理 {}/{}'.format(str(index + 1),
                                                len(file_list)))

            if os.path.exists(file_path):

                p, n = os.path.split(file_path)
                file_content = read_file(file_path)

                if not is_encrypt_data(file_content):
                    encrypt_content = encrypt_data(key.key, file_content)
                    output_file = os.path.join(dir_path, n)
                    write_file(output_file, encrypt_content)

            pd.setValue(pd.value() + 1)

        if not pd.wasCanceled():
            QMessageBox.information(pd, '处理完成', '加密完成')
        else:
            QMessageBox.information(pd, '已经终止', '用户取消')

    except Exception as e:
        pass
        QMessageBox.critical(pd, '处理失败', str(e))

    pd.close()