Название: QcalendarWidget делегат Отправлено: CJ1 от Ноябрь 18, 2012, 18:41 Такой теперь вопрос.
Вот я сделал себе QcalendarWidget как делегат. А как мне при двойном щелчке по числу закрыть его? И чтоб вызвался setEditorData Название: Re: QcalendarWidget делегат Отправлено: CJ1 от Ноябрь 18, 2012, 18:52 Он у меня работает, но просто если выбрал число и в сторону нажал, а мне бы набо было при двойном щелчке
Название: Re: QcalendarWidget делегат Отправлено: CJ1 от Ноябрь 18, 2012, 20:16 Вот смотрите Отнаследовался я от QcalendarWidget
Код
А тут я реализую Код
Но он не реагирует на событие! Почему? Название: Re: QcalendarWidget делегат Отправлено: CJ1 от Ноябрь 18, 2012, 20:32 Ну помогите люди добрые!
Название: Re: QcalendarWidget делегат Отправлено: CJ1 от Ноябрь 18, 2012, 20:45 Ух ты! если по заголовку QcalendarWidget щелкаешь 2 раза то срабатывает!
А почему по числам не срабатывает? Название: Re: QcalendarWidget делегат Отправлено: kambala от Ноябрь 19, 2012, 00:01 предлагаю тебе почитать документацию по этому виджету, особенно раздел сигналов
Название: Re: QcalendarWidget делегат Отправлено: CJ1 от Ноябрь 19, 2012, 08:01 Да читал я!
Там только есть сигнал 1 раз кликнуть, или сигнал что дата выбрана, вот этим и пользуюсь! А хотел бы 2 раза клик Название: Re: QcalendarWidget делегат Отправлено: Bepec от Ноябрь 19, 2012, 08:59 Он наследован от QWidget, т.е. ты можешь отнаследовать свой класс и переопределить метод MousePressEvent и отлавливать двойное нажатие.
Так же ты можешь поставить на него eventFilter ( без переопределения) и так же ловить двойное нажатие. Название: Re: QcalendarWidget делегат Отправлено: CJ1 от Ноябрь 19, 2012, 09:32 ВООООООООООООТ и я об этом! Я наследовался! И сверху написал! Но двойной щелчок приходит если я щелкну по заголовку календаря! Если же я выбираю дату и щелкаю по ней, то ничего не приходит!!!!!!
Название: Re: QcalendarWidget делегат Отправлено: CJ1 от Ноябрь 19, 2012, 09:39 Вот пояснения в картинке
Название: Re: QcalendarWidget делегат Отправлено: Bepec от Ноябрь 19, 2012, 09:55 Логично. Если мне не изменяет память, та область является QScrollArea(не помню точно, помоему этот тип). Потому фильтр нужно ставить не на него самого, а на viewPort его.
Название: Re: QcalendarWidget делегат Отправлено: CJ1 от Ноябрь 19, 2012, 10:15 Так! Его viewport это QTableWidget, значит мне надо получить QRect календаря, а в обработчике событий QTableWidget проверить, щелкнул ли пользователь два раза в этом квадрате. Так.
Но тут проблема, как я передам в TableWidget QRect календаря? Название: Re: QcalendarWidget делегат Отправлено: Bepec от Ноябрь 19, 2012, 10:24 Кхм. Более точно ответить на ваш вопрос я не могу. Ибо с календар виджетом не работал вообще.
Могу покопаться в его нутрях, но только если вам это очень надо. Название: Re: QcalendarWidget делегат Отправлено: CJ1 от Ноябрь 19, 2012, 10:26 Очень нужно! Спасибо за отзывчивость!
Тут вообще календарь то делегат! Название: Re: QcalendarWidget делегат Отправлено: Bepec от Ноябрь 19, 2012, 10:31 Он виджетом от этого не перестал быть :)
PS до вечера посмотрю. Как освобожусь в общем. Название: Re: QcalendarWidget делегат Отправлено: CJ1 от Ноябрь 19, 2012, 11:06 Еще такой вопрос теперь
Код
Q_OBJECT вставлять надо???? Если да то почему он мне пишет calendar.obj:-1: ошибка: LNK2001: неразрешенный внешний символ ""public: virtual struct QMetaObject const * __thiscall calendar::metaObject(void)const " (?metaObject@calendar@@UBEPBUQMetaObject@@XZ)" calendar.obj:-1: ошибка: LNK2001: неразрешенный внешний символ ""public: virtual void * __thiscall calendar::qt_metacast(char const *)" (?qt_metacast@calendar@@UAEPAXPBD@Z)" calendar.obj:-1: ошибка: LNK2001: неразрешенный внешний символ ""public: virtual int __thiscall calendar::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@calendar@@UAEHW4Call@QMetaObject@@HPAPAX@Z)" Название: Re: QcalendarWidget делегат Отправлено: CJ1 от Ноябрь 19, 2012, 11:13 Исправил! Указав другое место зборки, фиг поймешь почему так.
Но теперь не видит слот! QMetaObject::connectSlotsByName: No matching signal for on_calendarWidget_clicked(QDate) Код
Код
Название: Re: QcalendarWidget делегат Отправлено: CJ1 от Ноябрь 19, 2012, 11:27 Все! Сделал двойной щелчок вот так
Код
Код
Название: Re: QcalendarWidget делегат Отправлено: mutineer от Ноябрь 19, 2012, 12:06 Исправил! Указав другое место зборки, фиг поймешь почему так. Потому что после добавления Q_OBJECT к классу, который до этого был скомпилирован без этого макроса, нужно делать полную пересборку проекта Название: Re: QcalendarWidget делегат Отправлено: CJ1 от Ноябрь 19, 2012, 12:45 А, нет, не помогло, пока не удалил полностью все файлы которые создает криэтор
|