首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >另存为错误'X‘对象在QGIS插件中没有属性'Y’

另存为错误'X‘对象在QGIS插件中没有属性'Y’
EN

Stack Overflow用户
提问于 2013-12-27 11:15:23
回答 1查看 206关注 0票数 0

我尝试使插件打开,读取,然后保存保存为不同的格式,我打开.xml文件,并尝试将其另存为/写入为文本或pdf格式,但我收到如下错误信息:

代码语言:javascript
复制
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'

这是我的代码

代码语言:javascript
复制
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 )
EN

回答 1

Stack Overflow用户

发布于 2013-12-27 17:09:06

您正试图通过以self.nmfile的方式对变量nmfile进行寻址,将其用作实例变量。但是,此变量/属性从未初始化(比较: AttributeError:'latihDialog‘对象没有属性'nmfile')。

您可以在isiDataFile的局部上下文中使用该变量,但是一旦该方法结束,局部变量就会丢失,并且不能再被访问。

你必须设计你的代码流,它将

  • 在调用_save-method之前(例如self.nmfile = '/tmp/myfile' ),
  • 将参数nmfile传递给_save-method,因此它将在

中可用

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20794233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档