【问题标题】:Plugin QGIS Error "QTextEdit.setPlainText(QString): not enough arguments"插件 QGIS 错误“QTextEdit.setPlainText(QString):没有足够的参数”
【发布时间】:2014-01-01 09:24:29
【问题描述】:

我尝试制作save as 按钮,但当我尝试在我的目录中保存文件时收到此错误消息,(我想以文本格式(.txt 或 .doc)保存我的文件)

File "C:\Users\Mr.Pakde/.qgis2/python/plugins\condition\conditiondialog.py", line 80, in saveAs
        self._save( _filename )
    File "C:\Users\Mr.Pakde/.qgis2/python/plugins\condition\conditiondialog.py", line 68, in _save
        f.write( 'Rekomendasi :' + str(self.ui.textRec1.setPlainText() ) )
    TypeError: QTextEdit.setPlainText(QString): not enough arguments

这是代码:

Recomen = self.ui.btnRec1
QtCore.QObject.connect(Recomen, QtCore.SIGNAL('clicked()'),self.Compare1)   
Smpan = self.ui.btnSave
QtCore.QObject.connect(Smpan, QtCore.SIGNAL('clicked()'),self.saveAs)       

def Compare1(self):
    input1 = self.ui.lineInput1.text()
    input2 = self.ui.lineInput2.text()
    compare = ''
    if input1 == input2:
        compare = 'Data dapat digunakam'
    else:
        compare = 'Data tidak cocok'
    self.ui.textRec1.setPlainText(compare)

def _save(self, simpan):        
    f = open( simpan, 'w' )
    f.write( 'Input 1 :' + str(self.ui.lineInput1.text()) ) 
    f.write( 'Input 2 :' + str(self.ui.lineInput2.text()) )
    f.write( 'Rekomendasi :' + str(self.ui.textRec1.setPlainText()) )       
    f.close()
def savefile(self):
    if self.simpan:
          self._save( "%s" % self.simpan )
    else:
          self.saveAs()

def saveAs(self):
    tulis = QtGui.QFileDialog(self).getSaveFileName()
    if tulis !="":
        _filename = "%s" % tulis
        self._save( _filename )

【问题讨论】:

  • 您是否遗漏了部分代码?前两行似乎缩进太多?请验证代码是否正确显示。
  • 对不起我的错误,我从记事本++复制它时不小心选中了前2行,但它在我的电脑上工作正常(没有缩进错误)并且QGIS可以加载它,当我尝试将文件保存到时发生错误目录(例如 C:\Document\practice)

标签: python plugins qgis


【解决方案1】:

您需要使用toPlainText 方法从文本编辑中获取文本:

    f.write('Rekomendasi :' + str(self.ui.textRec1.toPlainText()))

【讨论】:

    【解决方案2】:

    看起来您缺少代码,因为错误消息是指第 80 行。但是错误 消息也指

    f.write( 'Rekomendasi :' + str(self.ui.textRec1.setPlainText()) ). 
    

    根据文档 .setPlainText 需要一个 QString 用于输入。 http://qt-project.org/doc/qt-4.8/qtextedit.html#plainText-prop

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-24
      • 1970-01-01
      • 1970-01-01
      • 2014-04-07
      • 1970-01-01
      相关资源
      最近更新 更多