Privacy policyContactsAbout siteOpinionsGitHubDonate
© EVILEG 2015-2018
Recommend hosting
TIMEWEB
Dec. 4, 2018, 2:55 p.m.

Тупит QML на примитивном коде - что ему еще надо? (С видео)

qml, окно, координаты, размер

Сделал вот такой минимальный пример:

import QtQuick 2.6
import QtQuick.Window 2.2

Window {
    visible: true
    width: 500
    height: 500

    Rectangle
    {
        x: 0
        y: 0
        anchors.fill: parent
        color: "blue"
    }

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

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

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

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

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

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

Вопрос: в чем проблема, и как сделать так, чтобы окно всегда отрисовывалось правильно? Это глюк на таком простом примере, а представьте что происходит в реальном проекте с кучей элементов с вычисляемыми размерами и масштабированием.
7

У меня то же самое. При большем количестве qml-объектов в окне отрисовывается все отлично, без глюков.

0

> У меня то же самое


У меня проблема возникает на Qt 5.9.2 и Qt 5.11.2 (инсталляция с qt.io сйта) в Debian Linux 9 Stable (LXDE).


А у тебя в какой среде эта проблема?

0

Я не смогу емко ответить на ваш вопрос (быть может Евгений или кто-нибудь из опытных участников форума подскажет), с данным поведением отрисовки при ресайзе окна столкнулся еще в Qt 5.7, с тех пор вроде ничего не изменилось. Могу лишь сказать, что наблюдал и в Windows и в Ubuntu. Но при разработке интерфейса с добавлением большого количества элементов данная проблема пропадает, поэтому голову этим себе не забиваю.

0

Как мы смогли выяснить в обсуждении на ЛОРе, достаточно добавить любую анимацию, и все становится правильным.

https://www.linux.org.ru/forum/development/14650010


0

Попробовал ваш код под Windows на Qt 5.12 - этой проблемы не наблюдаю.

0

Мне кажется тут конфликт anchors.fill: parent и x-y, выберите либо одно, либо другое и вообще есть анкоры, не вижу смысла тут в x-y

0

> Мне кажется тут конфликт anchors.fill: parent и x-y, выберите либо одно, либо другое и вообще есть анкоры, не вижу смысла тут в x-y


Тут демонстрируется проблема и на анкорах, и на задании прямых координат. Это Linux-специфичная проблема, возникает на некоторых комбинациях KWin+KDE и Openbox+LXDE.

0

Answers

Only authorized users can respond to the forum.
Please, login or register
Dec. 12, 2018, 6:49 p.m.
Yaroslav Chernetskyi

Qt - Test 001. Signals and slots

  • Result:31points,
  • Rating scores-10
Dec. 12, 2018, 6:19 a.m.
nikbobrecov

Qt - Test 001. Signals and slots

  • Result:57points,
  • Rating scores-2
Dec. 11, 2018, 6:59 p.m.
Feniks3000

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

  • Result:71points,
  • Rating scores1
Recent comments
Dec. 11, 2018, 9:01 p.m.
Евгений Легоцкой

Не знаю, какой-там конкретно эффект и если честно не хочется fl studio ради того, чтобы посмотреть устанавливать, но из того, что увидел в интернете. Предполагаю, что то, что вы хотите с...
Dec. 11, 2018, 7:25 p.m.
Vlad15007

Подскажите пожалуйста ( я новичок совсем)Можно ли организовать спрайт без этого окошка (как в fl studio fruity dance)?
Dec. 11, 2018, 3:06 p.m.
Евгений Легоцкой

Что интересно, если написать так from <application_name>.<module_name> import <filename> ,то PyCharm сносит крышу, если разрабатываешь в рамках проекта приложение, ко...
Dec. 11, 2018, 2:52 p.m.
Илья Чичак

Тут мне тоже есть что сказать=) Сами разрабы советуют импортировать следующим образом: from <application_name> import <module_name> Стоит избегать from . import &l...;
Dec. 11, 2018, 2:28 p.m.
Евгений Легоцкой

Твоя правда. Согласен. Свои миграции храню в репозитории. На продакшене только выполняю обновление структуры базы данных, после тестирования на дев сервере конечно (читай локальная машина разр...
Now discuss on the forum
Dec. 12, 2018, 5:52 p.m.
Михаиллл

Оказывается оно все переводит в нижний регистр и нужно так писать: SearchTableModel->setTable("\"Test2\"");
Dec. 12, 2018, 4:32 p.m.
Булат Гиниятов

Допустим в MyObject *myobject = new MyObject; есть метод start(){while(aaa){////////////////}} Как мне обратиться к методу stop(){aaa=false;} ? Соответственно по...
Dec. 12, 2018, 4:28 p.m.
xintrea

Как выяснилось в этом обсуждении: Отправка Email из Android в Qt для отправки Email в Android необходимо делать Java-метод, который и будет отправлять email. И этот Java-мет...
Dec. 12, 2018, 3:35 p.m.
lynx

если кому будет вдруг нужно, подумал я над предложением Евгения Но думаю, что проще какой-то функционал дополнить для TableView из Qt Quick Controls 2. вообще берем стандарт...
Dec. 12, 2018, 1:49 p.m.
Евгений Легоцкой

но у меня нет времени учиться ВЕЧНО давайте без истерик, вы это говорите человеку, который всю жизнь учился, учится и будет учиться, и в программировании всегда так, или учишься и...
Join us in social networks

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