У меня есть приложение, разработанное с использованием PYQT5, в этом приложении у меня есть строка в QtableWidget с гиперссылкой QLabel на отчет. Отчет сохраняется локально, хотя в будущем он может находиться в общей сетевой папке.
Ради этого вопроса, скажем, у меня есть отчет о моем локальном диске в этом месте:
C:\my\report\location\report.html
Однако, когда я нажимаю на ссылку, чтобы открыть отчет в веб-браузере, в окне консоли появляется сообщение:
ShellExecute 'c:%5Cmy%5Creport%5Clocation%5Creport.html' failed (error 2).
Очевидно, что в скрипте есть проблемы со свойством обратной косой черты '\', но я не могу найти способ предотвратить это.
Вот мой код на основе pyqt для генерации гиперссылки в QTableWidget:
reportLink = " <a href=\"{url}\"> <font face=Tw Cen MT Condensed size=2 color=black>Report</font> </a>"\
.format(url=outcome_dict['report_location'])
report_lbl = QtWidgets.QLabel()
report_lbl.setText(reportLink)
report_lbl.setOpenExternalLinks(True)
self.ui.my_table.setCellWidget(self.row, 6, report_lbl)
А вот мой фрагмент кода, когда пользователь щелкает гиперссылку отчета в QTableWidget:
def html_clicked(self, mi):
self.column = mi.column()
if self.column == 6:
try:
for ref in self.ui.my_table.selectedIndexes():
self.link = self.ui.my_table.item(int(ref.row()), 6).text()
webbrowser.open(self.link)
except Exception as e:
print(e)
else:
pass