Russian Qt Forum
Ноябрь 24, 2024, 03:44
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
contextMenu для QHeaderView
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: contextMenu для QHeaderView (Прочитано 5920 раз)
Flakes
Гость
contextMenu для QHeaderView
«
:
Ноябрь 24, 2008, 01:39 »
Немного не тривиальная проблема. Нужно реализовать контекстное меню на QHeaderView, поэтому вроде нужно переопределять contextMenuEvent. Ну чтож, сделал свой класс, унаследовав от QHeaderView. Пробую живучесть, установил для QTableView свой header, ну и конечно оказалось ему не откуда черпать данные, и заголовок пуст, то есть ваще не отображается.
Покопался, в описалове сказано, что оно делает QAbstractItemModel::headerData() для модели, но как его с моделью законнектить? Ниче типа SetModel() я не нашел.
А может совсем глубоко зарываюсь, и все просто?
Записан
Barmaglodd
Гость
Re: contextMenu для QHeaderView
«
Ответ #1 :
Ноябрь 24, 2008, 07:57 »
Когда у QTableView делаешь setModel, у QHeaderView вызывается setModel с этой же моделью.
Записан
vvvmag
Гость
Re: contextMenu для QHeaderView
«
Ответ #2 :
Ноябрь 24, 2008, 09:27 »
можно не переопределять класс QHeaderView. Сделай проще создай слот в котором будет создаваться меню например
Qmenu* mymenu = new QMenu();
mymenu->addAction("myAction");
mymenu->exec();
останется сделать
connect(QHeaderView, SIGNAL(customContextMenuRequest(QPoint)), this, SLOT("имя слота"))
у меня работает
Записан
spirit
Гость
Re: contextMenu для QHeaderView
«
Ответ #3 :
Ноябрь 24, 2008, 09:35 »
Цитата: vvvmag от Ноябрь 24, 2008, 09:27
можно не переопределять класс QHeaderView. Сделай проще создай слот в котором будет создаваться меню например
Qmenu* mymenu = new QMenu();
mymenu->addAction("myAction");
mymenu->exec();
останется сделать
connect(QHeaderView, SIGNAL(customContextMenuRequest(QPoint)), this, SLOT("имя слота"))
у меня работает
+ еще надо задать
setContextMenuPolicy(Qt::Qt::CustomContextMenu)
для виджета у которого будет доступно контекстное меню
и еще сигнал правильно написать:
customContextMenuRequest
, а
customContextMenuRequest
ed
.
Записан
Flakes
Гость
Re: contextMenu для QHeaderView
«
Ответ #4 :
Ноябрь 30, 2008, 19:57 »
Спасибо, менюшка работает. А как узнать, на каком индексе QHeaderView я вызвал меню, высчитывать по пикселям координаты? А дальше?
Записан
spirit
Гость
Re: contextMenu для QHeaderView
«
Ответ #5 :
Ноябрь 30, 2008, 20:07 »
Цитировать
int QHeaderView::logicalIndexAt ( const QPoint & pos ) const
This is an overloaded member function, provided for convenience.
Returns the logical index of the section at the position given in pos. If the header is horizontal the x-coordinate will be used to find the logical index; otherwise the y-coordinate will be used.
See also sectionPosition().
Записан
Flakes
Гость
Re: contextMenu для QHeaderView
«
Ответ #6 :
Ноябрь 30, 2008, 20:54 »
ага, я как раз стал присматриваться к logicalIndexAt. Спасибо еще раз!
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...