2014-09-09 4 views
2

У меня есть небольшая функция, в которой он создает файл отчета из содержимого виджета графического интерфейса. Теперь я использую subprocess.Popen, чтобы открыть файл отчета с помощью kwrite, но он не работает. Мне что-то не хватает. пожалуйста, помогите это код, который я написал:subprocess.popen не работает в pyqt

.....  
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, она работает, что здесь проблема?

Ошибка, который я получаю, когда я запустить его в моем коде графического интерфейса: а: к: команда не найдена

+0

А: К: команда не найдена, это ошибка, я получаю – ayaan

+0

Есть чек 'Ui_Dialog.fileName' это питон строка? (Не QtCore.QString). Id not, может использовать 'str (Ui_Dialog.fileName)'? –

+1

Это работало, да, это должно быть преобразование типа, спасибо большое, я использовал tkinter до того, как выше работала функция, потому что она возвращает строку python. В любом случае спасибо @KitsuneMeyoko – ayaan

ответ

3

Это не питон строка, это QtCore.QString, Чтобы исправить это, попробуйте преобразовать его в строку питона;

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