qgis的Python插件出错

时间:2013-09-18 12:15:02

标签: python plugins qgis

我正在遵循为qgis开发插件的教程,但在尝试在文本框窗口中插入文本时,我遇到了错误。代码如所示here

类vector_selectbypointdialog.py:

    from PyQt4 import QtCore, QtGui
    from ui_vector_selectbypoint import Ui_vector_selectbypoint
    # create the dialog for zoom to point
    class vector_selectbypointDialog(QtGui.QDialog):

    def __init__(self):
        QtGui.QDialog.__init__(self)
        # Set up the user interface from Designer.
        self.ui = Ui_vector_selectbypoint()
        self.ui.setupUi(self)

    def setTextBrowser(self, output):
        self.ui.txtFeedback.setText(output)

    def clearTextBrowser(self):
        self.ui.txtFeedback.clear()

类vector_selectbypoint.py:

init

创建如下对象:

# create our GUI dialog
self.dlg = vector_selectbypointDialog()

处理插入文本的方法:

handleMouseDown(self, point, button):
        self.dlg.clearTextBrowser()
        self.dlg.setTextBrowser( str(point.x()) + " , " +str(point.y()) )

错误是:

  

handleMouseDown       self.dlg.clearTextBrowser()   AttributeError:' vector_selectbypointdialog'对象没有属性' clearTextBrowser'

3 个答案:

答案 0 :(得分:0)

您确定要重命名PyQt文本浏览器小部件txtFeedback吗?

答案 1 :(得分:0)

我遇到了同样的问题并解决了它:你可能在类vector_selectbypointDialog中混合了制表符和空格字符(clearTextBrowser成为init()中的一个子函数)。

在vector_selectbypointdialog.py中正确缩进代码,它会起作用; - )

答案 2 :(得分:0)

是的,这个例子有些不对劲。

而不是:

    self.dlg.clearTextBrowser()
    self.dlg.setTextBrowser( str(point.x()) + " , " +str(point.y()) )

只需使用:

    self.dlg.ui.txtFeedback.clear()
    self.dlg.ui.txtFeedback.setText( str(point.x()) + " , " +str(point.y()) )