Russian Qt Forum
Ноябрь 24, 2024, 01:56
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Вопросы новичков
>
Как вызвать сигнал clicked() правой кнопкой мыши?
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Как вызвать сигнал clicked() правой кнопкой мыши? (Прочитано 6997 раз)
Senia_Bezrubashkin
Гость
Как вызвать сигнал clicked() правой кнопкой мыши?
«
:
Январь 18, 2013, 02:45 »
Код:
QAbstractItemView::clicked(const QModelIndex & index)
Как вызвать этот сигнал правой кнопкой мыши?
Заранее спасибо.
Записан
carrygun
Гость
Re: Как вызвать сигнал clicked() правой кнопкой мыши?
«
Ответ #1 :
Январь 18, 2013, 05:09 »
Переопределить mousePressEvent(), смотреть кнопки эвента и на метод itemAt().
Записан
Senia_Bezrubashkin
Гость
Re: Как вызвать сигнал clicked() правой кнопкой мыши?
«
Ответ #2 :
Январь 19, 2013, 08:59 »
А область айтема для курсора придется задавать?
Записан
Senia_Bezrubashkin
Гость
Re: Как вызвать сигнал clicked() правой кнопкой мыши?
«
Ответ #3 :
Январь 19, 2013, 18:06 »
Из различных источников почерпнул, что нужно определять область при пересечении границ которой можно высылать сигнал (с этим более-менее понятно), но вот как определять саму область (ну, чтобы она была привязана к конкретному объекту (координаты объекта могут меняться (ну, мне так думается))) не совсем ясно. Или я все не правильно мыслю? А может есть более очевидный способ выслать обсуждаемый сигнал для правой кнопки мыши (ну, как для левой кнопки)?
«
Последнее редактирование: Январь 19, 2013, 18:07 от Senia_Bezrubashkin
»
Записан
Bepec
Гость
Re: Как вызвать сигнал clicked() правой кнопкой мыши?
«
Ответ #4 :
Январь 19, 2013, 18:53 »
Qt сам определяет где и кто и чем кликнул.
Данный слот относится к виджету. У виджета есть параметры как положение, высота ширина.
Записан
Senia_Bezrubashkin
Гость
Re: Как вызвать сигнал clicked() правой кнопкой мыши?
«
Ответ #5 :
Январь 20, 2013, 10:39 »
Блин... а чтобы itemAt() вызвать нужно наследоваться от QGraphicsView?
Записан
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: Как вызвать сигнал clicked() правой кнопкой мыши?
«
Ответ #6 :
Январь 20, 2013, 10:42 »
Цитата: Senia_Bezrubashkin от Январь 20, 2013, 10:39
Блин... а чтобы itemAt() вызвать нужно наследоваться от QGraphicsView?
Почему? Он в публичных методах.
Записан
Senia_Bezrubashkin
Гость
Re: Как вызвать сигнал clicked() правой кнопкой мыши?
«
Ответ #7 :
Январь 20, 2013, 10:58 »
Цитата: Old от Январь 20, 2013, 10:42
Почему? Он в публичных методах.
В публичных методах где?
Записан
Bepec
Гость
Re: Как вызвать сигнал clicked() правой кнопкой мыши?
«
Ответ #8 :
Январь 20, 2013, 11:03 »
Надо вам почитать книгу C++ за 21 день. Через полгодика поймёте суть.
Публичные методы можно вызывать, имея указатель на класс. Приватные - только если ваш класс является наследником.
Ещё проще:
Код:
ui.graphicsView->itemAt(); // можно.
Записан
Senia_Bezrubashkin
Гость
Re: Как вызвать сигнал clicked() правой кнопкой мыши?
«
Ответ #9 :
Январь 20, 2013, 11:22 »
Цитата: Bepec от Январь 20, 2013, 11:03
Надо вам почитать книгу C++ за 21 день. Через полгодика поймёте суть.
Публичные методы можно вызывать, имея указатель на класс. Приватные - только если ваш класс является наследником.
Ещё проще:
Код:
ui.graphicsView->itemAt(); // можно.
Может тогда книгу С++ за пол годика?
Записан
carrygun
Гость
Re: Как вызвать сигнал clicked() правой кнопкой мыши?
«
Ответ #10 :
Январь 21, 2013, 05:53 »
При чем тут QGraphicsView?
Записан
Bepec
Гость
Re: Как вызвать сигнал clicked() правой кнопкой мыши?
«
Ответ #11 :
Январь 21, 2013, 05:58 »
Ахз. Меня заразил хозяин темы, я начал фигню нести
PS а ТС-су почитать про С++ надо всё же .
Записан
Senia_Bezrubashkin
Гость
Re: Как вызвать сигнал clicked() правой кнопкой мыши?
«
Ответ #12 :
Январь 21, 2013, 10:17 »
Цитата: carrygun от Январь 21, 2013, 05:53
При чем тут QGraphicsView?
Потому что itemAt() там нашел.
Записан
Senia_Bezrubashkin
Гость
Re: Как вызвать сигнал clicked() правой кнопкой мыши?
«
Ответ #13 :
Январь 21, 2013, 10:24 »
Цитата: Bepec от Январь 21, 2013, 05:58
Ахз. Меня заразил хозяин темы, я начал фигню нести
Нужно брать ответственность за свои поступки... вообще нормальный принцип.
Цитата: Bepec от Январь 21, 2013, 05:58
PS а ТС-су почитать про С++ надо всё же .
А я, по твоему, что делаю? Или только в последовательном режиме голова работает? Параллельно не... никак?
Записан
carrygun
Гость
Re: Как вызвать сигнал clicked() правой кнопкой мыши?
«
Ответ #14 :
Январь 21, 2013, 11:28 »
Цитата: Senia_Bezrubashkin от Январь 21, 2013, 10:17
Потому что itemAt() там нашел.
Я немного перепутал метод, тебе нужен indexAt(), тот что у QAbstractItemView. Наследуешься от нужного класса (например QTreeView), переопределяешь двойной щелчек мышью, смотришь на кнопки мыши и координаты эвента и, если надо, испускаешь сигнал с нужным индексом (или что тебе удобнее).
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...