Название: [Решено]Работа с QCalendarWidget в QItemDelegate Отправлено: Nemo2000 от Ноября 18, 2010, 20:36 Доброго времени суток=)
У меня есть таблица QTableWidget. Для её ячеек я создаю делегат ItemComboDateDelegate, чтобы редактировать ячейки с помощью календаря QCalendarWidget. Код файла itemcombodatedelegate.cpp Код: #include "itemcombodatedelegate.h" Мне нужно чтобы при клике на календарь, он тут же исчезал и нужное значение записывалось в ячейку. У меня же это происходит только когда я кликаю по другой ячейке таблицы. Я так понимаю что надо как-то отлавливать событие клика по календарю и в нём уже делать всё что нужно??словить клик, я могу, но как реализовать остальное? Помогите, пожалуйста=) Название: Re: Работа с QCalendarWidget в QItemDelegate Отправлено: Пантер от Ноября 18, 2010, 20:38 Соедини его сигнал void activated ( const QDate & date ) с его же слотом close и будет тебе счастье. ;)
Название: Re: Работа с QCalendarWidget в QItemDelegate Отправлено: Nemo2000 от Ноября 18, 2010, 20:47 Я вот тоже думал так сделать,но почему-то такого слота там нету.. ???
есть только deleteLater() и helpEvent(); >:( Название: Re: Работа с QCalendarWidget в QItemDelegate Отправлено: Пантер от Ноября 18, 2010, 20:50 QCalendarWidget наследуется от QWidget, у которого есть слот bool QWidget::close () [slot]. Так что ты что-то путаешь.
Название: Re: Работа с QCalendarWidget в QItemDelegate Отправлено: Nemo2000 от Ноября 18, 2010, 20:57 Да, я действительно опять напутал:)
Я в connect() третьим параметром указывал this, тоесть класс моего делегата. А надо было указать мой календарь :) Спасибо,что наставили на путь истинный ;D Название: Re: Работа с QCalendarWidget в QItemDelegate Отправлено: Пантер от Ноября 18, 2010, 21:03 :) Бывает.
Я вчера часа полтора искал баг в своей проге, оказалось, что ошибка в скобках. Написал new char (10) вместо new char [10]. Иногда бывает и похуже. ;D Название: Re: Работа с QCalendarWidget в QItemDelegate Отправлено: Nemo2000 от Ноября 19, 2010, 13:25 Тогда ещё вопрос.
Как можно настроить положение этого календаря,чтобы он появлялся под ячейкой, ну или где-то возле неё. По умолчанию его положение 0,0 в кординатах таблицы. В функции UpdateEditorGeometry есть параметр option ,но с помощью него можно достать координаты таблицы,а не отдельной ячейки. Название: Re: Работа с QCalendarWidget в QItemDelegate Отправлено: Kolobok от Ноября 19, 2010, 14:15 QStyleOption::rect это координаты ячейки.
Название: Re: Работа с QCalendarWidget в QItemDelegate Отправлено: crossly от Ноября 19, 2010, 14:33 а может лучше было бы использовать QDateEdit с setCalendarPopup(true).... не ??
Название: Re: Работа с QCalendarWidget в QItemDelegate Отправлено: Nemo2000 от Ноября 19, 2010, 23:03 crossly, да это именно то что нужно :)
Я просто незнал про такой виджет. Спасибо всем)) |