Privacy policyContactsAbout siteOpinionsGitHubDonate
© EVILEG 2015-2018
Recommend hosting
TIMEWEB
U
Feb. 5, 2019, 9:42 a.m.

QCalendarWidget перекашивает интерфейс в андроид-приложении

Приложение под андроид 9(Android build platform: android-28). Есть календарь который изначально скрыт. Есть кнопка которая вызывает ui->calendar->show(); и после появления календаря весь интерфейс приложения съезжает вправо. Помогает двойной тап по полю QDateEdit для редактирования даты. Что это такое? Как устранить этот баг? Возможно это из-за 9ки, т.к. после установки 9го андроида на телефон и скачивания, установки и сборки приложения с API28 при первом запуске приложения мне выдаётся предупреждение о каких-то ошибках связанных с API.

Virtual hosting with 10 percent discount
Virtual hosting with 10 percent discount
EVILEG offers reliable hosting with a 10% discount for virtual hosting and 5% for VPS
7

Добрый день.

У вас просто виджет календаря не влазит в окно приложения при первом появлении, по сути не правильно позиционируется. Нужно задавать его ширину. Взять ширину окна, и на основании онной установить фиксированную ширину календаря. А потом только показывать календарь.

А вообще разработка под Андроид на классических виджетах в принципе не делается сейчас. Для этого был разработан QML в Qt.

1

Полностью согласен с Евгением. Сам приложение свое делал на QML, и проблем с позиционированием не было.

0
U

Его как ни уменьшай - не помогает. Это с использованием setFixedSize. setFixedWidth как уже стало понятно тоже не помог. Точно не помню, но на 8ке вроде не было этого мяса, я бы такой косяк запомнил.

0

Переведите все на QML. Получайте размер окна основного, от него и выставляйте ширину своих в приложении окон.

0
U

Я в QML не умею, я C++ учил.

0

Так самое время научится для приложений делать разделение, бакенд это кресты, а фронтенд это QML. И как вам выше написали QML он разработан именно для работы с мобилками и тачскриновыми мониторами. Виджеты не для этого делались. Вашь крестовый код мало изменений претерпит. Там только добавить надо будет чтоыб методы и свойства могли быть видемы в слоях QML. Там все достаточно гибко, хотя и не без подводных камней. Но если вы делаете для мобилки то вам без QML не обойтись, иначе это "фиаско".

0

У евгения очень много видео, примеров, заданий связанных с QML. Так что не составит труда по ним пройтись.

0

Comments

Only authorized users can post comments.
Please, Log in or Sign up
d
April 26, 2019, 2:45 a.m.
djanaibekova_0301@mail.ru

C++ - Тест 003. Условия и циклы

  • Result:42points,
  • Rating points-8
Z
April 25, 2019, 8:02 p.m.
ZadvornyAlexey

C++ - Test 001. The first program and data types

  • Result:60points,
  • Rating points-1
m
April 24, 2019, 2:30 p.m.
maksImkа

C++ - Тест 003. Условия и циклы

  • Result:50points,
  • Rating points-4
Last comments
April 21, 2019, 4:22 p.m.
Евгений Легоцкой

Через метод setIcon table.horizontalHeaderItem(0).setIcon("qrc://path/to/icon.png")
April 21, 2019, 3:48 p.m.
Евгений Легоцкой

Добрый день! Спасибо за комментарий. Там действительно лучше будет сделать с инициализацией по умолчанию.
U
April 18, 2019, 3:37 p.m.
Unreal_man

А как иконку в хедер задать?
u
April 18, 2019, 2:15 a.m.
uaa

доброго времени,большое спасибо за пример для начинающего)при адаптации к своему проекту столкнулся с таким ньансом:в vepolyline.h в 47 строке нужна инициализация по умолчанию: int m_pointF...
E
April 11, 2019, 12:49 p.m.
Evgeny

Спасибо за ответ) У меня компоновщик на нее ругался просто. Оказалось, просто забыл Q_OBJECT в начале класса указать.
Now discuss on the forum
April 25, 2019, 10:51 a.m.
Ruslan Polupan

Изменил функциютеперь работает. bool ModelTerminals::setData(const QModelIndex &index, const QVariant &value, int role){ Q_UNUSED(role) if(!index.isValid()) {return false;...
April 24, 2019, 6:20 a.m.
Ruslan Polupan

я так понимаю надо инфорация об устройствах.Я бы пробовал так rust@suse:~> lsblk -PNAME="sda" MAJ:MIN="8:0" RM="0" SIZE="111,8G" RO="0" TYPE="disk" MOUNTPOINT=""NAME="sda1" MAJ:MIN="8...
April 21, 2019, 4:16 p.m.
Евгений Легоцкой

Приветствую Нужно сохранять где-то выбранное значение, а потом восстанавливать его. Или использовать QSettings или добавить метод open(), в который передавать начальные значения для того...
R
April 19, 2019, 9:55 a.m.
RED_Spider

мені важко це зараз навіть перевірити, тому що знайшов коміт, це ще було в 2016 році, і цей код не буде працювати коректно зараз, єдине скажу що це були QThread
Join us in social networks

For registered users on the site there is a minimum amount of advertising