Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: QTreeWidget headeritem
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt GUI
Rosster
Всем привет, как в QTreeWidget сделать так, чтобы при клике на headeritem вызывалась функция, имеется сигнал ItemClicked(). Но как через него сделать клик именно в заголовке? Или есть другие способы?
спасибо
Litkevich Yuriy
Цитата(Rosster @ 2.12.2009, 2:01) *
Но как через него сделать клик именно в заголовке?
ну "клик"-то ты мышкой делаешь.
Первое, что в голову пришло:
Сигнал передаёт в качестве параметра элемент дерева, его можно сравнить (по указателю) с тем, который возвращается функцией QTreeWidgetItem * headerItem () const, если они равны (и не нулевые), то щёлкнули по заголовку, тогда вызвать нужную функцию
Rosster
Не, не помогло))))
ItemClicked() работает только при нажатии на сами ветки дерева, а на заголовок не действует
Litkevich Yuriy
ну тогда только через QHeaderView:
QHeaderView * QTreeView::header () const
А в нём сигнал:
void QHeaderView::sectionClicked ( int logicalIndex ) [signal]

П.С. QTreeWidget наследник QTreeView
Rosster
Цитата(Litkevich Yuriy @ 3.12.2009, 1:17) *
ну тогда только через QHeaderView:
QHeaderView * QTreeView::header () const
А в нём сигнал:
void QHeaderView::sectionClicked ( int logicalIndex ) [signal]

П.С. QTreeWidget наследник QTreeView



Цитата(Litkevich Yuriy @ 3.12.2009, 1:17) *
ну тогда только через QHeaderView:
QHeaderView * QTreeView::header () const
А в нём сигнал:
void QHeaderView::sectionClicked ( int logicalIndex ) [signal]

П.С. QTreeWidget наследник QTreeView

Пишу:
QHeaderView *head = treeWidget->header();
connect(head, SIGNAL(sectionClicked(int )), this, SLOT(Function(int )));
QTableWidget c одной колонкой,а this - это диалог, остальные сигналы нормально работают, может не так делаю?

connect возвращает false

ошибся,connect возвращает true. Значит проблема в реализации кода, что-то не так
Litkevich Yuriy
Rosster, ты в слот воткни строчку:
qDebug() << "Into Function(int )";

П.С. Не забудь включить консоль при отладке
Rosster
Решение было найдено: может кому-то поможет:
connect((QObject*)head, SIGNAL(sectionClicked(int )), this, SLOT(Function(int )));
илии включить заголовок: QHeaderView в проект.
Litkevich Yuriy
Цитата(Rosster @ 4.12.2009, 1:25) *
(QObject*)
это бред како-то,
Цитата(Rosster @ 4.12.2009, 1:25) *
лии включить заголовок: QHeaderView в проект.
ну это само собой, это и в асистенте в описании класса написано
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2021 IPS, Inc.