Russian Qt Forum
Июля 07, 2025, 22:52
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
[4.4.3] QCalendarWidget::setCurrentPage(int,int) как-то неверно работает.
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: [4.4.3] QCalendarWidget::setCurrentPage(int,int) как-то неверно работает. (Прочитано 6940 раз)
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5877
Жаждущий знаний
[4.4.3] QCalendarWidget::setCurrentPage(int,int) как-то неверно работает.
«
:
Ноября 05, 2008, 18:17 »
Прилагаю экзампл, там все понятно. Смысл такой - хочу создать календарик на весь год, т.е. на виджет кидается 12 календарей и при изменении даты в каком-либо из них, должна изменяться дата в других. Косяк в том, что все работает, если изменять дату в одном календаре, а вот если изменить в другом, сразу ТАКОЕ начинается... Если использовать setSelectedDate(), то все нормально. Вот только 12 выделенных дней мне совсем не нужно.
Собственно вопрос: как победить ошибку или как убрать выделение?
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: [4.4.3] QCalendarWidget::setCurrentPage(int,int) как-то неверно работает.
«
Ответ #1 :
Ноября 05, 2008, 19:34 »
Цитата: panter_dsd от Ноября 05, 2008, 18:17
а вот если изменить в другом, сразу ТАКОЕ начинается...
Я так понимаю они бесконечно обновлятся начинают, обратная связь глухая. Если так, то глянь пример
examples\widgets\sliders
там можно любой тип ползунка двигать и остальные движутся вместе с ним, но ужасов не происходит.
Записан
Юра.
spirit
Гость
Re: [4.4.3] QCalendarWidget::setCurrentPage(int,int) как-то неверно работает.
«
Ответ #2 :
Ноября 05, 2008, 19:37 »
ужасы происходят потому, что из модели выгребается невалидный индекс, соответственно и год отрицательный.
я бы алгоритм пересмотрел бы.
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5877
Жаждущий знаний
Re: [4.4.3] QCalendarWidget::setCurrentPage(int,int) как-то неверно работает.
«
Ответ #3 :
Ноября 05, 2008, 19:38 »
Ты экзампл собирал? Ничего бесконечно не обновляется, так как коннекты перед установкой currentPage я закрываю. Тут в другом проблема.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5877
Жаждущий знаний
Re: [4.4.3] QCalendarWidget::setCurrentPage(int,int) как-то неверно работает.
«
Ответ #4 :
Ноября 05, 2008, 19:40 »
Цитата: spirit от Ноября 05, 2008, 19:37
ужасы происходят потому, что из модели выгребается невалидный индекс, соответственно и год отрицательный.
я бы алгоритм пересмотрел бы.
Вот тут я немного не понял. Где невалидный индекс? Если сделать qDebug(QString::number(year).toLocal8Bit()) в начале setDates(), то и он выводит минусовую дату.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
spirit
Гость
Re: [4.4.3] QCalendarWidget::setCurrentPage(int,int) как-то неверно работает.
«
Ответ #5 :
Ноября 05, 2008, 19:48 »
поставь бряку в строке 53, и перейди в слот QCalendarWidget::setCurrentPage, затем попадаетм в QCalendarWidgetPrivate::showMonth и ставим там бряку. (бряку из строки 53 можно убрать). затем меняем дату в другом календаре: срабатывает бряка в QCalendarWidgetPrivate::showMonth, смотрим по стеку какой метод ее вызвал, оказывается метод QCalendarWidgetPrivate::_q_nextMonthClicked, ставим тут бряку. (предыдущую можно убрать, чтобы 12 раз ф5 не жать
). затем заходим в метод QCalendarWidgetPrivate::getCurrentDate и получаем невалидный индекс.
как-то завернуто написал.
в общем можно сразу открыть qcalendarwidget.cpp и поставить бряку в строке 1797, метод QCalendarWidgetPrivate::getCurrentDate.
(номер строки может быть другой в сырцах 4.4.3, т.к. у меня 4.3.5)
«
Последнее редактирование: Ноября 05, 2008, 19:50 от spirit
»
Записан
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: [4.4.3] QCalendarWidget::setCurrentPage(int,int) как-то неверно работает.
«
Ответ #6 :
Ноября 05, 2008, 19:59 »
2 panter_dsd, а вложение чего-то не качается, все время example.htm скачивается
Записан
Юра.
spirit
Гость
Re: [4.4.3] QCalendarWidget::setCurrentPage(int,int) как-то неверно работает.
«
Ответ #7 :
Ноября 05, 2008, 20:02 »
так переименуй в zip, у меня тоже html был
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5877
Жаждущий знаний
Re: [4.4.3] QCalendarWidget::setCurrentPage(int,int) как-то неверно работает.
«
Ответ #8 :
Ноября 05, 2008, 20:28 »
spirit: Что-то сегодня торможу, можешь поподробнее о том кто виноват и что делать?
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
spirit
Гость
Re: [4.4.3] QCalendarWidget::setCurrentPage(int,int) как-то неверно работает.
«
Ответ #9 :
Ноября 05, 2008, 20:33 »
карент индекс не устанавливается. вот ты писал, что если заюзать QCalendarWidget::setSelectedDate, то все ок, так и есть, потому что если пошагать по этому методу, то можно увидеть, что карент индекс устанавливается.
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5877
Жаждущий знаний
Re: [4.4.3] QCalendarWidget::setCurrentPage(int,int) как-то неверно работает.
«
Ответ #10 :
Ноября 05, 2008, 20:39 »
Так что мне делать? setSelectedDate не катит из-за того, что он выделает число, а мне выделение не нужно.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...