AttributeError: HelloWorld instance has no attribute 'connec

Не знаете, где задать вопрос? Задавайте здесь.
Ответить
Cathrin
Участник
Сообщения: 67
Зарегистрирован: 16 май 2012, 10:38
Репутация: 0

AttributeError: HelloWorld instance has no attribute 'connec

Сообщение Cathrin » 04 май 2013, 20:21

Подскажите,пожалуйста,как мне исправить эту ошибку?
вот мой код:

Код: Выделить всё

import sys,os import win32api from PyQt4.QtCore import * from PyQt4.QtGui import * from qgis.core import * import ctypes from PyQt4 import uic

class HelloWorld:

def __init__(self, iface):  

    self.iface = iface
    self.canvas = iface.mapCanvas()
    self.connect(self.ui.pushButton,QtCore.SIGNAL("clicked()"),self.function)

def initGui(self):       
    self.action = QAction(QIcon(":/plugins/"), "&HelloWorld", self.iface.mainWindow())
    self.action.setWhatsThis("Configuration for test plugin")
    self.action.setStatusTip("This is status tip")
    QObject.connect(self.action, SIGNAL("activated()"), self.hello_world)


    self.iface.addPluginToMenu("HelloWorld", self.action)   


def unload(self):    
    self.iface.removePluginMenu("HelloWorld",self.action)
    self.iface.removeToolBarIcon(self.action)


def function( self ):
    QMessageBox.information(self.iface.mainWindow(), QCoreApplication.translate('HelloWorld', "HelloWorld"), QCoreApplication.translate('HelloWorld', "HelloWorld"))

def hello_world(self):

    path = os.path.dirname( os.path.abspath( __file__ ) )
    self.optionsDialog = uic.loadUi(os.path.join(path,"untitled.ui"))
if name == "main": pass
Traceback (most recent call last): File "C:/PROGRA~1/Quantum GIS Lisboa/apps/qgis/./python\qgis\utils.py", line 164, in startPlugin plugins[packageName] = package.classFactory(iface) File "C:/Users/User/.qgis//python/plugins\HelloWorld__init__.py", line 15, in classFactory return HelloWorld(iface) File "C:/Users/User/.qgis//python/plugins\HelloWorld\HelloWorld.py", line 21, in init self.connect(self.ui.pushButton,QtCore.SIGNAL("clicked()"),self.function) AttributeError: HelloWorld instance has no attribute 'connect'

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 792
Ваше звание: званий не имею
Откуда: Москва

Re: AttributeError: HelloWorld instance has no attribute 'co

Сообщение Александр Мурый » 04 май 2013, 22:03

Во-первых, почему вы не пишете ПО, в котором работаете, и его версию? По коду видно, что это QGIS 1.8 под Windows, но можно и писать, вообще-то. Во-вторых, почему не на форуме QGIS? Вопрос здесь сугубо специальный.

Код: Выделить всё

import sys,os import win32api from PyQt4.QtCore import * from PyQt4.QtGui import * from qgis.core import * import ctypes from PyQt4 import uic
Подключение модулей у вас в одну строку или это форматирование сбилось?
Редактор материалов, модератор форума

Cathrin
Участник
Сообщения: 67
Зарегистрирован: 16 май 2012, 10:38
Репутация: 0

Re: AttributeError: HelloWorld instance has no attribute 'co

Сообщение Cathrin » 05 май 2013, 21:23

да,тут просто сбилось форматирование.

Cathrin
Участник
Сообщения: 67
Зарегистрирован: 16 май 2012, 10:38
Репутация: 0

Re: AttributeError: HelloWorld instance has no attribute 'co

Сообщение Cathrin » 05 май 2013, 21:25

а как исправить ошибку вы не знаете?

doujin
Активный участник
Сообщения: 163
Зарегистрирован: 28 июн 2012, 01:02
Репутация: 84
Откуда: Vladivostok

Re: AttributeError: HelloWorld instance has no attribute 'co

Сообщение doujin » 06 май 2013, 01:09

У вашего класса HelloWorld нет метода connect, о чем и говорит ошибка. Поэтому вызывать его в конструкторе класса (self.connect(self.ui.pushButton, QtCore.SIGNAL("clicked()"), self.function)) не правильно. Метод connect есть у класса QObject. И, судя по коду, вам нужно вызвать именно его. Но, на мой взгляд, вызывать его надо не в конструкторе, а в методе def initGui(self). Это самое очевидное.

Что делать дальше, думаю, можно было бы догадаться из кода, но я не очень хорошо разбираюсь в написании плагинов для QGIS. И без дополнительных комментариев по поводу того, что же вы хотите получить в итоге, не обойтись.

Cathrin
Участник
Сообщения: 67
Зарегистрирован: 16 май 2012, 10:38
Репутация: 0

Re: AttributeError: HelloWorld instance has no attribute 'co

Сообщение Cathrin » 06 май 2013, 08:38

я пытаюсь реализовать следующую вещь: Чтобы при нажатии кнопки "pushButton" у меня вызывалась какая-то определенная функция

Cathrin
Участник
Сообщения: 67
Зарегистрирован: 16 май 2012, 10:38
Репутация: 0

Re: AttributeError: HelloWorld instance has no attribute 'co

Сообщение Cathrin » 06 май 2013, 09:34

QObject.connect(self.action, SIGNAL("clicked()"),self.function)

если пишу вот таким образом,то ошибки не возникает..но каким образом в этой строчке указать действие именно на кнопку pushButton?

Ответить

Вернуться в «Я новичок!»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя