我尝试使插件打开,读取,然后保存保存为不同的格式,我打开.xml文件,并尝试将其另存为/写入为文本或pdf格式,但我收到如下错误信息:
File "C:\Users\Mr.Pakde/.qgis2/python/plugins\latih\latihdialog.py", line 71, in saveAs
self._save( _filename )
File "C:\Users\Mr.Pakde/.qgis2/python/plugins\latih\latihdialog.py", line 59, in _save
f.write( "%s" % self.nmfile.text() )
AttributeError: 'latihDialog' object has no attribute 'nmfile'这是我的代码
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, simpan):
f = open( simpan, "w" )
f.write( "%s" % self.nmfile.text() )
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 )
self.setFilename( _filename )发布于 2013-12-27 17:09:06
您正试图通过以self.nmfile的方式对变量nmfile进行寻址,将其用作实例变量。但是,此变量/属性从未初始化(比较: AttributeError:'latihDialog‘对象没有属性'nmfile')。
您可以在isiDataFile的局部上下文中使用该变量,但是一旦该方法结束,局部变量就会丢失,并且不能再被访问。
你必须设计你的代码流,它将
_save-method之前(例如self.nmfile = '/tmp/myfile' ),nmfile传递给_save-method,因此它将在中可用
https://stackoverflow.com/questions/20794233
复制相似问题