subprocess.popen在pyqt中不起作用

2 投票
1 回答
696 浏览
提问于 2025-04-20 14:20

我有一个小函数,它从一个图形界面(GUI)组件的内容中创建一个报告文件。现在我在用subprocess.Popen来打开这个报告文件,使用的是kwrite,但它不工作。

我是不是漏掉了什么?请帮帮我,这是我写的代码:

.....    
def createreport(self):
            text = self.textEdit_2.toPlainText()
            copytext= (str('%s') %text)
            name=Ui_Dialog.fileName
            print Ui_Dialog.fileName
            Ui_Dialog.fileName = QtGui.QFileDialog.getSaveFileName(self,'save result file', '/home/harisyam/Desktop/transfer')
            file=open(Ui_Dialog.fileName,'w')
            file.write(copytext)
            file.close()
            subprocess.Popen('kwrite '+Ui_Dialog.fileName ,shell=True)

同样的代码在我使用Python命令行时可以正常工作,那这里的问题是什么呢?

当我在我的图形界面代码中运行时,出现的错误是:a: k: 找不到命令。

1 个回答

3

这不是Python的字符串,而是QtCore.QString。要解决这个问题,可以试着把它转换成Python的字符串。

subprocess.Popen('kwrite '+ str(Ui_Dialog.fileName), shell=True)

撰写回答