Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 12, 2008 17:00:57

birst
От:
Зарегистрирован: 2007-09-13
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

сигналы , слоты

Добрый день,
Возниклка небольшая непонятка с сигналами и слотами
я создаю класс , конструкторе указываю , кнопку

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)

Офлайн

#2 Сен. 12, 2008 18:28:42

Cleric
От:
Зарегистрирован: 2007-06-26
Сообщения: 87
Репутация: +  0  -
Профиль   Отправить e-mail  

сигналы , слоты

birst
ведь у питона по умолчанию можно не указывать в параметрах метода первым аргументом self так как он передается автоматом
вообщето нет), self должен всегда идти первым параметром (если это не статик метод).

birst
второй как можно передать в слот кроме одного параметра signal еще какие либо ? мне придется писать обертку для стандартного сигнала ? Или есть гораздо простой путь ?
в слот передается не сигнал а параметр/ы, например если сигнал void setChecked ( bool ) то в слот передается переменная показывающая нажата ли кнопка (QAbstractButton).

А вообще от чтения документации никто еще не умерал и без знания базовых вещей далеко не уедешь



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version