Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
whyt |
6.4.2009, 1:27
Сообщение
#1
|
|
Студент ![]() Группа: Участник Сообщений: 28 Регистрация: 29.3.2009 Пользователь №: 649 Спасибо сказали: 1 раз(а) Репутация: 1
|
может туплю я..ночь уже..но вот возник вопрос, как сделать так, чтобы при клике на QComboBox - сразу после открытия выпадающего списка (но не после выбора какого нить итема) - происходило сигнал передавался в нужный мне слот..стандартные сигналы такого не позволяют..похожих тем в поиске не нашел.
|
|
|
|
|
igor_bogomolov |
6.4.2009, 1:39
Сообщение
#2
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29
|
Как вариант.
Смотри void QComboBox::showPopup () [virtual] Наследуешся, переопределяешь этот метод, и высылаешь в нем свой сигнал. |
|
|
|
|
Litkevich Yuriy |
6.4.2009, 7:54
Сообщение
#3
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
можно еще попробовать установить фильтр событий и ловить событие "щелчёк" по QComboBox'у
|
|
|
|
|
whyt |
6.4.2009, 10:43
Сообщение
#4
|
|
Студент ![]() Группа: Участник Сообщений: 28 Регистрация: 29.3.2009 Пользователь №: 649 Спасибо сказали: 1 раз(а) Репутация: 1
|
так, а поподробней можно? не встречал такого пока=( или ткните носом, где кого читать)
|
|
|
|
|
igor_bogomolov |
6.4.2009, 11:15
Сообщение
#5
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29
|
Чего не встречали - наследования или фильтров событий
Если фильтры, то смотрите void QObject::installEventFilter ( QObject * filterObj ) Будет примерно так: Раскрывающийся текст Если то что я предлогал. То необходимо наследоваться от QComboBox, и переопределять метод showPopup (). В этом случае придется создовать свою модель popup. Впринципе это не сложно. Читайте, эксперементируейте. Что непонятно пишите, разберемся |
|
|
|
|
whyt |
6.4.2009, 11:51
Сообщение
#6
|
|
Студент ![]() Группа: Участник Сообщений: 28 Регистрация: 29.3.2009 Пользователь №: 649 Спасибо сказали: 1 раз(а) Репутация: 1
|
спасибо за конкретные советы=) пробуем=)
вот на это ругается вот так
|
|
|
|
|
igor_bogomolov |
6.4.2009, 11:59
Сообщение
#7
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29
|
А #include <QMouseEvent> добавили?
QMouseEvent *mouseEvent = static_cast<QMouseEvent *>(event) вам возможно и не нужен. Из него можно определить только какая кнопка мыши нажата, и в кокой точке. Если эта информация не нужна, то можно эту строку убрать. Сообщение отредактировал igor_bogomolov - 6.4.2009, 12:01 |
|
|
|
|
kwisp |
6.4.2009, 12:03
Сообщение
#8
|
|
астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23
|
Цитата(whyt @ 6.4.2009, 12:51) Link ругается вот так вообще если говорить об ошибке. то если не ошибаюсь static_cast в этом случае неуместен. может dynamic_cast и не вызвал бы ругательст только на ноль проверить надо не забыть. |
|
|
|
|
whyt |
6.4.2009, 12:04
Сообщение
#9
|
|
Студент ![]() Группа: Участник Сообщений: 28 Регистрация: 29.3.2009 Пользователь №: 649 Спасибо сказали: 1 раз(а) Репутация: 1
|
нашел свой косяк - откомпилил..работает..только вот чтоб раскрыть список теперь придеца юзеру дважды кликать..неудобно, видимо придется использовать второй предложенный вариант
|
|
|
|
|
igor_bogomolov |
6.4.2009, 12:06
Сообщение
#10
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29
|
Цитата только вот чтоб раскрыть список теперь придеца юзеру дважды кликать return true замените на return false и посмотрите что получится? Сообщение отредактировал igor_bogomolov - 6.4.2009, 12:08 |
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 22.12.2025, 12:33 |