Написать и сохранить как с Python в плагине QGIS
Я пытаюсь сделать плагин в 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'
Я пишу свой код так:
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 )
Я пытаюсь сохранить файл в другом формате
1 ответ
Сообщение об ошибке говорит вам точно, в чем проблема:
filename = QtGui.QFileDialog(self).getSaveFileName()
if not filename.isEmpty():
filename
это unicode
объект, который не имеет isEmpty()
метод. Пытаться:
if filename != "":
или, как пустые строки False
-у:
if filename: