Russian Qt Forum

Qt => Общие вопросы => Тема начата: qt_beginner от Ноябрь 04, 2011, 23:39



Название: Обращение к свойству класса из слота этого класса
Отправлено: qt_beginner от Ноябрь 04, 2011, 23:39
Есть некий класс "class", у класса есть свойство "property", которое задаётся в конструкторе. Соединение сигнала со слотом тоже происходит в конструкторе. Можно ли как-то обратиться к этому свойству из слота? Обращение this->property не работает


Название: Re: Обращение к свойству класса из слота этого класса
Отправлено: kambala от Ноябрь 05, 2011, 00:06
а можно пример кода? непонятно в чем проблема - все поля класса всегда доступны из любого его метода


Название: Re: Обращение к свойству класса из слота этого класса
Отправлено: qt_beginner от Ноябрь 05, 2011, 01:18
Код:
selector::selector(QWidget *parent) :
    QDialog(parent,Qt::WindowTitleHint | Qt::WindowSystemMenuHint)
{
QMap <QString,QString> somemap;
 QTreeWidget* fTree = new QTreeWidget;

...
...

 connect(fTree,SIGNAL(itemActivated(QTreeWidgetItem*,int)),SLOT(on_select(QTreeWidgetItem*,int)));
}

void audiofolder_select::on_select(QTreeWidgetItem* t, int m)
{
    qDebug() << thjs->somemap;
}


Название: Re: Обращение к свойству класса из слота этого класса
Отправлено: kambala от Ноябрь 05, 2011, 01:26
естественно локальная переменная больше нигде не доступна. сделай ее членом класса (как это сделать - почитай где-нибудь) и проблема отпадет.


Название: Re: Обращение к свойству класса из слота этого класса
Отправлено: LisandreL от Ноябрь 05, 2011, 01:28
Так не выйдет, вы его в конструкторе не только создаёте, но и разрушаете по выходе из него.
Объявляйте somemap как член класса.
Ну и this пишется через другую букву.


Название: Re: Обращение к свойству класса из слота этого класса
Отправлено: qt_beginner от Ноябрь 05, 2011, 02:07
Всё, спасибо. Проблема решена