Форум сайта python.su
Добрый день,
Возниклка небольшая непонятка с сигналами и слотами
я создаю класс , конструкторе указываю , кнопку
button=QtGui.PushButton(u“Обзор”, self.frame)
по нажатию этой кнопки должно открытся QFileDialog окно , его тоже прописываю в конструкторе
self.dialog=QtGui.QFileDialog()
далее в конструкторе хочу прописать соеденение , т.к. в QFileDialog нет слота , то я пишу свой , делаю его методом этого же класса , и уже оттуда хочу вызвать метод dialog.getExistingDirectory()
def OpenBrowseDialog(signal) :
self.dialog.GetExistingDirectory(self.frame,“welcome”,“/home”)
прописываю соеденение , в конструкторе все того же класса
self.connect (button,QtCore.SIGNAL(“clicked()”),self.OpenBrowseDialog)
при запуске всего этого , мне начинает ругаться на то что self undefined в строке
self.dialog.GetExistingDirectory(self.frame,“welcome”,“/home”)
меня интересует два вопроса , почему я не могу получить доступ из метода класса к обьектам этого же класса , ведь у питона по умолчанию можно не указывать в параметрах метода первым аргументом self так как он передается автоматом
второй как можно передать в слот кроме одного параметра signal еще какие либо ? мне придется писать обертку для стандартного сигнала ? Или есть гораздо простой путь ?
Отредактировано (Сен. 12, 2008 17:04:31)
Офлайн
birstвообщето нет), self должен всегда идти первым параметром (если это не статик метод).
ведь у питона по умолчанию можно не указывать в параметрах метода первым аргументом self так как он передается автоматом
birstв слот передается не сигнал а параметр/ы, например если сигнал void setChecked ( bool ) то в слот передается переменная показывающая нажата ли кнопка (QAbstractButton).
второй как можно передать в слот кроме одного параметра signal еще какие либо ? мне придется писать обертку для стандартного сигнала ? Или есть гораздо простой путь ?
Офлайн