![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Rosster |
![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 33 Регистрация: 23.11.2009 Пользователь №: 1254 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Всем привет, как в QTreeWidget сделать так, чтобы при клике на headeritem вызывалась функция, имеется сигнал ItemClicked(). Но как через него сделать клик именно в заголовке? Или есть другие способы?
спасибо |
|
|
![]() |
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Но как через него сделать клик именно в заголовке? ну "клик"-то ты мышкой делаешь.Первое, что в голову пришло: Сигнал передаёт в качестве параметра элемент дерева, его можно сравнить (по указателю) с тем, который возвращается функцией QTreeWidgetItem * headerItem () const, если они равны (и не нулевые), то щёлкнули по заголовку, тогда вызвать нужную функцию |
|
|
Rosster |
![]()
Сообщение
#3
|
Студент ![]() Группа: Участник Сообщений: 33 Регистрация: 23.11.2009 Пользователь №: 1254 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Не, не помогло))))
ItemClicked() работает только при нажатии на сами ветки дерева, а на заголовок не действует |
|
|
Litkevich Yuriy |
![]()
Сообщение
#4
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
ну тогда только через QHeaderView:
QHeaderView * QTreeView::header () const А в нём сигнал: void QHeaderView::sectionClicked ( int logicalIndex ) [signal] П.С. QTreeWidget наследник QTreeView |
|
|
Rosster |
![]()
Сообщение
#5
|
Студент ![]() Группа: Участник Сообщений: 33 Регистрация: 23.11.2009 Пользователь №: 1254 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
ну тогда только через QHeaderView: QHeaderView * QTreeView::header () const А в нём сигнал: void QHeaderView::sectionClicked ( int logicalIndex ) [signal] П.С. QTreeWidget наследник QTreeView ну тогда только через 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 |
![]()
Сообщение
#6
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Rosster, ты в слот воткни строчку:
qDebug() << "Into Function(int )"; П.С. Не забудь включить консоль при отладке |
|
|
Rosster |
![]()
Сообщение
#7
|
Студент ![]() Группа: Участник Сообщений: 33 Регистрация: 23.11.2009 Пользователь №: 1254 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Решение было найдено: может кому-то поможет:
connect((QObject*)head, SIGNAL(sectionClicked(int )), this, SLOT(Function(int ))); илии включить заголовок: QHeaderView в проект. |
|
|
Litkevich Yuriy |
![]()
Сообщение
#8
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 28.5.2025, 11:15 |