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()
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))
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)
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))
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()