QCalendarWidget перекашивает интерфейс в андроид-приложении
Приложение под андроид 9(Android build platform: android-28).
Есть календарь который изначально скрыт. Есть кнопка которая вызывает ui->calendar->show(); и после появления календаря весь интерфейс приложения съезжает вправо. Помогает двойной тап по полю QDateEdit для редактирования даты. Что это такое? Как устранить этот баг? Возможно это из-за 9ки, т.к. после установки 9го андроида на телефон и скачивания, установки и сборки приложения с API28 при первом запуске приложения мне выдаётся предупреждение о каких-то ошибках связанных с API.
Рекомендуємо хостинг TIMEWEB
Стабільний хостинг, на якому розміщується соціальна мережа EVILEG. Для проектів на Django радимо VDS хостинг.Вам це подобається? Поділіться в соціальних мережах!
- Akiv Doros
- 11 листопада 2024 р. 14:58
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:50бали,
- Рейтинг балів-4
- molni99
- 26 жовтня 2024 р. 01:37
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:80бали,
- Рейтинг балів4
- molni99
- 26 жовтня 2024 р. 01:29
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:20бали,
- Рейтинг балів-10
Добрый день.
У вас просто виджет календаря не влазит в окно приложения при первом появлении, по сути не правильно позиционируется. Нужно задавать его ширину. Взять ширину окна, и на основании онной установить фиксированную ширину календаря. А потом только показывать календарь.
А вообще разработка под Андроид на классических виджетах в принципе не делается сейчас. Для этого был разработан QML в Qt.
Полностью согласен с Евгением. Сам приложение свое делал на QML, и проблем с позиционированием не было.
Его как ни уменьшай - не помогает. Это с использованием setFixedSize. setFixedWidth как уже стало понятно тоже не помог. Точно не помню, но на 8ке вроде не было этого мяса, я бы такой косяк запомнил.
Переведите все на QML. Получайте размер окна основного, от него и выставляйте ширину своих в приложении окон.
Я в QML не умею, я C++ учил.
Так самое время научится для приложений делать разделение, бакенд это кресты, а фронтенд это QML. И как вам выше написали QML он разработан именно для работы с мобилками и тачскриновыми мониторами.
Виджеты не для этого делались. Вашь крестовый код мало изменений претерпит. Там только добавить надо будет чтоыб методы и свойства могли быть видемы в слоях QML. Там все достаточно гибко, хотя и не без подводных камней. Но если вы делаете для мобилки то вам без QML не обойтись, иначе это "фиаско".
У евгения очень много видео, примеров, заданий связанных с QML. Так что не составит труда по ним пройтись.