我正在遵循为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'
答案 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()) )