Russian Qt Forum

Qt => Qt Quick => Тема начата: xintrea от Декабрь 04, 2018, 16:25



Название: Тупит QML на примитивном коде - что ему еще надо? (С видео)
Отправлено: xintrea от Декабрь 04, 2018, 16:25
Сделал вот такой минимальный пример:

Код:
import QtQuick 2.6
import QtQuick.Window 2.2

Window {
    visible: true
    width: 500
    height: 500

    Rectangle
    {
        anchors.fill: parent
        color: "blue"
    }

    Rectangle
    {
        x: 0
        y: 0
        width: 100
        height: 100
        color: "red"
    }
}

Это просто окно с синим фоном и красным прямоугольником в левом верхнем углу.

Казалось бы, что тут может глючить? А глюки начинаются, когда меняется размер окна. Скриншоты сделать не могу, потому что в момент создания скриншота, окна, похоже, перерисовываются, и скриншот получается с «правильным» содержимым.

Поэтому выкладываю видео: https://youtu.be/0ewK6jrqWms

Видно, что если два раза нажать «Развернуть», то содержимое окна становится неправильным: синяя заливка начинается не сверху окна, а с каким-то вертикальным отступом. Красный квадрат тоже смещен вниз на этот же отступ.

Если двигать окно, то содержимое окна остается неправильным, но в какой-то момент вдруг перерисовывается, и снова становится правильным.

Вопрос: в чем проблема, и как сделать так, чтобы окно всегда отрисовывалось правильно?


Название: Re: Тупит QML на примитивном коде - что ему еще надо? (С видео)
Отправлено: kuzulis от Декабрь 04, 2018, 16:28
Линуксопроблемы. У меня на винде все ок (Qt 5.11.2)


Название: Re: Тупит QML на примитивном коде - что ему еще надо? (С видео)
Отправлено: Авварон от Декабрь 05, 2018, 12:26
xintrea
Вохможно, дрова на видюху надо обновить.
А что вкладка "Начало" в Среаторе, подвержена проблеме? Она вроде тоже на qml вся


Название: Re: Тупит QML на примитивном коде - что ему еще надо? (С видео)
Отправлено: xintrea от Декабрь 05, 2018, 13:18
xintrea
Вохможно, дрова на видюху надо обновить.
А что вкладка "Начало" в Среаторе, подвержена проблеме? Она вроде тоже на qml вся
Debian Stable 9 и Intel i915, какие там дрова на видюху.

Это проблема DE, при сворачивании до обычного размера, DE видимо не посылает какой-то сигнал, и окно типа QML Window не знает что надо перерисовываться.

"Начало" в креаторе может быть и на QML, но окно QML Window, если оно и есть, сделано "внутри" стандартного Qt-окна. А у стандартных Qt-окон в Linux уже давно все баги поотлавливали.


Название: Re: Тупит QML на примитивном коде - что ему еще надо? (С видео)
Отправлено: Авварон от Декабрь 05, 2018, 16:40
А версия Qt какая, кстати? Я тут недавно столкнулся с багом с окнами на 5.12. Но под вендой. Но пока не копал глубоко.


Название: Re: Тупит QML на примитивном коде - что ему еще надо? (С видео)
Отправлено: vbv от Декабрь 05, 2018, 16:53
Для начала:
1. Какая версия Qt?
2. Как это окно визуализируется?
что-то типа main.cpp????

От себя:
С таким main.cpp
//
#include <QGuiApplication>
#include <QQmlApplicationEngine>

int main(int argc, char *argv[])
{
    QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
    QGuiApplication app(argc, argv);

    QQmlApplicationEngine engine;
    engine.load(QUrl(QLatin1String("qrc:/main.qml")));

    return app.exec();
}
//------------------------------
2. версия qt - 5.7.0

Без проблем, Ваш код работает как и ожидается и ничего не глючит.

сразу забыл упомянуть:
Slackware 14.2 Linux v 4.17.8 #2 SMP Thu Nov 8 13:20:53 EET 2018 x86_64 Intel(R) Core(TM) xxxx CPU @ x.00GHz GenuineIntel GNU/Linux
dm: xfce 4.12
video: NVIDIA 1030


Название: Re: Тупит QML на примитивном коде - что ему еще надо? (С видео)
Отправлено: navrocky от Январь 14, 2019, 16:05
Это скорее всего пробема DE, в частности оконного менеджера. Попробуйте грузануться в какую-нибудь DE и там проверить.