简体   繁体   English

在插件QGIS中使用python编写并另存为

[英]Write and Save As with python in plugin QGIS

I try to make plugin in QGIS and i want to make save as button but i got error message like this 我尝试在QGIS中制作插件,但我想另存为按钮,但是出现了这样的错误消息

Traceback (most recent call last):
  File "C:\Users\Mr.Pakde/.qgis2/python/plugins\latih\latihdialog.py", line 69, in 

saveAs
    if not filename.isEmpty():
AttributeError: 'unicode' object has no attribute 'isEmpty'

I write my code like this : 我这样写我的代码:

cariButton = self.ui.btnCari
QtCore.QObject.connect(cariButton,QtCore.SIGNAL('clicked()'),self.cari)
saveButton = self.ui.btnSave     
QtCore.QObject.connect(saveButton, QtCore.SIGNAL('clicked()'),self.saveAs)   

def  cari(self, event=None):
    #open dialog
    filename = QtGui.QFileDialog.getOpenFileName(self, 'Open File', '*.xml')         

self.ui.lineFile.setText(filename)
    #panggil isi data

self.isiDataFile(filename)

def isiDataFile(self, nmfile):
        #buka dengan open mode baca
        teksFile = open(nmfile, 'r').read()

self.ui.textFile.setText(teksFile)

def _save(self, filename):        
    f = open( filename, "w" )
        f.write( "%s" % self.lineFile.text() )
f.close()
def savefile(self):
     if self.filename:
          self._save( "%s" % self.filename )
else:
          self.saveAs()

def saveAs(self):
        filename = QtGui.QFileDialog(self).getSaveFileName()
        if not filename.isEmpty():
            _filename = "%s" % filename
            self._save( _filename )
            self.setFilename( _filename )

I try to save file in different format 我尝试以其他格式保存文件

The error message tells you exactly what the problem is: 该错误消息告诉您确切的问题是:

   filename = QtGui.QFileDialog(self).getSaveFileName()
    if not filename.isEmpty():

filename is a unicode object, which doesn't have an isEmpty() method. filename是一个unicode对象,没有isEmpty()方法。 Try: 尝试:

 if filename != "":

or, as empty strings are False -y : 或者,因为空字符串为False -y

if filename:

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM