QComboBox, Сигналы |
Здравствуйте, гость ( Вход | Регистрация )
QComboBox, Сигналы |
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: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 |
|
|
Текстовая версия | Сейчас: 28.12.2024, 13:11 |