2012-03-10 2 views
1

Я создаю приложение Qt. В обработчике событий я хочу получить доступ к виджету, который запустил событие.Qt/C++: идентификация родительского виджета в обработчике событий (сигнал)

Вы можете сделать это в методе фильтра событий литья параметра QObject:

bool MainWindow::eventFilter(QObject *obj, QEvent *event) 
{ 
    MyWidget* widget= static_cast<MyWidget*>(obj); 
    ... 
} 

Но как я могу это сделать внутри метода сигнала? Например, ListView OnClick сигнал:

void MainWindow::listView_Click(QModelIndex index) 
{ 
    QListView* view = // ???? 
} 

Спасибо

ответ

4

Пробег: QObject::sender().

void MainWindow::listView_Click(QModelIndex index) 
{ 
    QListView* view = qobject_cast<QListView* >(sender()); 
} 
+0

Спасибо тоже. Очень быстрая реакция, и именно то, что мне нужно. – Alex

4

Объект, который послал сигнал доступен с помощью метода sender QObject, когда вы находитесь внутри слота.

+0

Большое вам спасибо! – Alex

Смежные вопросы