crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в QComboBox
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
AD Дата 6.4.2009, 12:17
 
Цитата(whyt @ 6.4.2009, 13:10) *
во)терь как надо=) благодарю..надеюсь не сильно замучил глупыми вопросами..после делфей тяжко первое время=)

Главное, чтобы вопросы были конкретные. Такие вопросы вполне нормальны для новичка! Со временем привыкните к этому стилю. На мой взгляд, он не хуже, чем в Дельфях! :)
whyt Дата 6.4.2009, 12:10
  во)терь как надо=) благодарю..надеюсь не сильно замучил глупыми вопросами..после делфей тяжко первое время=)
igor_bogomolov Дата 6.4.2009, 12:10
 
Цитата(Litkevich Yuriy @ 6.4.2009, 13:08) *
а я бы и здесь вернул обработчик предка (return QObject::eventFilter(obj, event)
ведь нам надо всего лишь послать сигнал, а остальное оставить как есть

+1 Точно, отого эфекта я и хотел, ступил немного :rolleyes:
Litkevich Yuriy Дата 6.4.2009, 12:08
 
Цитата(igor_bogomolov @ 6.4.2009, 16:06) *
return true замените на return false и посмотрите что получится?
а я бы и здесь вернул обработчик предка (return QObject::eventFilter(obj, event))
ведь нам надо всего лишь послать сигнал, а остальное оставить как есть
igor_bogomolov Дата 6.4.2009, 12:06
 
Цитата
только вот чтоб раскрыть список теперь придеца юзеру дважды кликать

return true замените на return false и посмотрите что получится?
whyt Дата 6.4.2009, 12:04
  нашел свой косяк - откомпилил..работает..только вот чтоб раскрыть список теперь придеца юзеру дважды кликать..неудобно, видимо придется использовать второй предложенный вариант
kwisp Дата 6.4.2009, 12:03
 
Цитата(whyt @ 6.4.2009, 12:51) *
ругается вот так

вообще если говорить об ошибке.
то если не ошибаюсь static_cast в этом случае неуместен.
может dynamic_cast и не вызвал бы ругательст только на ноль проверить надо не забыть.
igor_bogomolov Дата 6.4.2009, 11:59
  А #include <QMouseEvent> добавили?
QMouseEvent *mouseEvent = static_cast<QMouseEvent *>(event) вам возможно и не нужен. Из него можно определить только какая кнопка мыши нажата, и в кокой точке. Если эта информация не нужна, то можно эту строку убрать.
whyt Дата 6.4.2009, 11:51
  спасибо за конкретные советы=) пробуем=)

вот на это
bool fakt::eventFilter(QObject *obj, QEvent *event)
{
    if (event->type() == QEvent::MouseButtonPress && obj == m_ui->cmb_list) {
                 QMouseEvent *mouseEvent = static_cast<QMouseEvent *>(event);
                 m_ui->rb_time->setEnabled(true);
                 return true;
             } else {
                 return QObject::eventFilter(obj, event);
             }


ругается вот так
 error: invalid static_cast from type `QEvent*' to type `QMouseEvent*'
igor_bogomolov Дата 6.4.2009, 11:15
  Чего не встречали - наследования или фильтров событий :rolleyes:
Если фильтры, то смотрите void QObject::installEventFilter ( QObject * filterObj )
Будет примерно так:
Раскрывающийся текст
         bool QMainForm::eventFilter(QObject *obj, QEvent *event)
         {
             if (event->type() == QEvent::MouseButtonPress && obj == comboBox) {
                 QMouseEvent *mouseEvent = static_cast<QMouseEvent *>(event);
                 // ваши действия и имитация сигнала
                 return true;
             } else {
                 return QObject::eventFilter(obj, event);
             }
         }

Если то что я предлогал. То необходимо наследоваться от QComboBox, и переопределять метод showPopup (). В этом случае придется создовать свою модель popup. Впринципе это не сложно. Читайте, эксперементируейте. Что непонятно пишите, разберемся :rolleyes:
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 30.4.2024, 19:03