def resolveAnySymlink(file_name: str) -> str: """ Some OSs have different extensions for linked files (for example, one possibility is .lnk-files on Windows). In such cases, the literal .lnk file will be attempted to open, not the file this resolves: """ info = QFileInfo(file_name) if info.exists() and info.isSymLink( ): # Use 'exists': Not certain to be a literal file, depending on subclass. file_name = info.symLinkTarget() return file_name
def browseOpenwith(self): filename, selectedFilter = QFileDialog.getOpenFileName(self, self.windowTitle()) if not filename: return fi = QFileInfo(filename) if fi.isSymLink(): filename = fi.symLinkTarget() if not os.path.exists(filename): QMessageBox.information(self, self.windowTitle(), self.tr("快捷方式所指向的程序不正确。")) return fi = QFileInfo(filename) if not fi.isExecutable(): QMessageBox.information(self, self.windowTitle(), self.tr("编辑程序必须是一个可执行文件。请重新选择。该选项是选填项,并不一定要填写。")) self.txtOpenwith.setText(fi.absoluteFilePath())
def browsePath(self): """用户点击了浏览路径的按钮。如果成功设置了路径,就返回True,如果用户取消了操作或者出错,就返回False 返回的用途参见showEvent()""" filename, selectedFilter = QFileDialog.getOpenFileName(self, self.windowTitle()) if not filename: return False fi = QFileInfo(filename) if fi.isSymLink(): filename = fi.symLinkTarget() if not os.path.exists(filename): QMessageBox.information(self, self.windowTitle(), self.tr("快捷方式所指向的程序不正确。")) return False fi = QFileInfo(filename) self.txtName.setText(fi.baseName()) self.txtPath.setText(fi.absoluteFilePath()) self.setFileIcon(fi.absoluteFilePath()) self.txtDir.setText(fi.dir().absolutePath()) return True
def browseOpenwith(self): filename, selectedFilter = QFileDialog.getOpenFileName( self, self.windowTitle()) if not filename: return fi = QFileInfo(filename) if fi.isSymLink(): filename = fi.symLinkTarget() if not os.path.exists(filename): QMessageBox.information(self, self.windowTitle(), self.tr("快捷方式所指向的程序不正确。")) return fi = QFileInfo(filename) if not fi.isExecutable(): QMessageBox.information( self, self.windowTitle(), self.tr("编辑程序必须是一个可执行文件。请重新选择。该选项是选填项,并不一定要填写。")) self.txtOpenwith.setText(fi.absoluteFilePath())
def browsePath(self): """用户点击了浏览路径的按钮。如果成功设置了路径,就返回True,如果用户取消了操作或者出错,就返回False 返回的用途参见showEvent()""" filename, selectedFilter = QFileDialog.getOpenFileName( self, self.windowTitle()) if not filename: return False fi = QFileInfo(filename) if fi.isSymLink(): filename = fi.symLinkTarget() if not os.path.exists(filename): QMessageBox.information(self, self.windowTitle(), self.tr("快捷方式所指向的程序不正确。")) return False fi = QFileInfo(filename) self.txtName.setText(fi.baseName()) self.txtPath.setText(fi.absoluteFilePath()) self.setFileIcon(fi.absoluteFilePath()) self.txtDir.setText(fi.dir().absolutePath()) return True