Quantcast
Channel: Preguntas activas con las etiquetas pyqt - Stack Overflow en español
Viewing all articles
Browse latest Browse all 77

Abrir un enlace externo a un fichero que tiene espacios en el nombre

$
0
0

Estoy haciendo una App en Python y en algunas partes del programa informo al usuario que se han creado varios documentos, y esto lo muestro en un widget QTextBrowser().Yo lo muestro con un hipervinculo para que de esa forma al hacer click en el, al usuario se le abra el fichero.He conseguido que funcione si el fichero no tiene espacios en blanco en su ruta.

He leído en muchos foros pero no encuentro la solución.

He escrito estos dos códigos para hacer pruebas.

En el código 1 utilizo QLabel y funciona perfectamente, pero si uso QTextBrowser no funciona.

Opción 1 funciona porque no hay espacios en la ruta del fichero.

Opción 7 y 10, abren el fichero pero el contenido se vuelca dentro del wiget.

Alguna idea?

CODE 1

import sysfrom PyQt5.QtWidgets import QApplication, QTextBrowser,QTextEdit,QLabelfrom PyQt5.QtCore import QUrlapp = QApplication(sys.argv)label=QLabel()file_2='c:/temp/test 2/test.docx'urlLink="<a href='file:///%s'>'Opción_12'</a>"%(file_2)label.setText(urlLink)label.setOpenExternalLinks(True)label.show()sys.exit(app.exec_())

CODE 2

import sysfrom PyQt5.QtWidgets import QApplication, QTextBrowser,QTextEditfrom PyQt5.QtCore import QUrlif __name__ == '__main__':    app = QApplication(sys.argv)    text_area = QTextBrowser()    file='c:/temp/test.docx'    link='<a href='"'{}'"'>Opción_1</a>'.format(file)    text_area.insertHtml(link)    file_2='c:/temp/test 2/test.docx'    link='<br><a href='"'{}'"'>Opción_2</a></br>'.format(file_2)    text_area.insertHtml(link)    file_2_reformated=file_2.replace(" ", "\\ ")    link='<br><a href='"'{}'"'>Opción_3</a></br>'.format(file_2_reformated)    text_area.insertHtml(link)    file_2_reformated=file_2.replace(" ", "%20")    link='<br><a href='"'{}'"'>Opción_4</a></br>'.format(file_2_reformated)    text_area.insertHtml(link)    file_2_reformated=chr(34)+file_2+chr(34)    link='<br><a href='"'{}'"'>Opción_5</a></br>'.format(file_2_reformated)    text_area.insertHtml(link)    file_2_reformated = " \"" + file_2 +" \""    link='<br><a href='"'{}'"'>Opción_6</a></br>'.format(file_2_reformated)    text_area.insertHtml(link)    link='<br><a href='"'file:///{}'"'>Opción_7</a></br>'.format(file_2)    text_area.insertHtml(link)    link='<br><a href='"'https://{}'"'>Opción_8</a></br>'.format(file_2)    text_area.insertHtml(link)    file_3="file:///c:/temp/test 2/test.docx"    link='<br><a href='"'https://{}'"'>Opción_9</a></br>'.format(file_3.as_uri())    text_area.insertHtml(link)    file_2='c:/temp/test 2/test.docx'    link = '<br><a href="{}">Opción_10</a></br>'.format(QUrl.fromLocalFile(file_2).toString())    text_area.insertHtml(link)    file_2='c:/temp/test 2/test.docx'    link = '<br><a href="\'{}\'">Opción_11</a></br>'.format(QUrl.fromLocalFile(file_2).toString())    text_area.insertHtml(link)    from pathlib import PureWindowsPath    file_3 = PureWindowsPath("c:/temp/test 2/test.docx")    link = '<br><a href="{}">Opción_13</a></br>'.format(file_3.as_uri())    text_area.insertHtml(link)    text_area.setOpenExternalLinks(True)    text_area.show()    sys.exit(app.exec_())

Viewing all articles
Browse latest Browse all 77

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>