1

我已经在 pyqt5 中指定了 tabula.exe 的路径,当我运行代码时,只有 cmd 闪烁一秒钟并关闭。我尝试了以下

 def openUrl(self):
      url = QtCore.QUrl('C:/Users/DELL/Desktop/Tabula/tabula/tabula.exe')
       if not QtGui.QDesktopServices.openUrl(url):
           QtGui.QMessageBox.warning(self, 'Open Url', 'Could not open url')
4

1 回答 1

2

当您使用QDesktopServices::openUrl()它时,它是向操作系统发出信号,表明有必要打开一个文件,并且它负责寻找可以执行此操作的应用程序。在您的情况下,它不符合该逻辑,因此解决方案是使用QProcess::startDetached()

tabula_path = 'C:/Users/DELL/Desktop/Tabula/tabula/tabula.exe'
if QtCore.QProcess.startDetached(tabula_path):
    QtWidgets.QMessageBox.information(self, 'Info', 'open a browser and go to http://localhost:8080')
else:
    QtWidgets.QMessageBox.warning(self, 'Problem', 'Problem with tabula')
于 2019-09-14T06:25:51.257 回答