LINUX.ORG.RU

28
Всего сообщений: 194

Не получается собрать ПОДПИСАННУЮ релизную версию под Андроид

В общем, собираю таким образом:

  1. Подключаю свое андроид устройство
  2. Разворачиваю приложение

Если разворачиваю debug версию - все ок. Разворачивается и работает на смартфоне. Если разворачиваю релизную версию не подписанную, то все так же хорошо. Но стоит попытаться развернуть приложение с галочкой «подписывание пакета» - выдает ошибку сборки

Error: A JNI error has occurred, please check your installation and try again Exception in thread «main» java.lang.UnsupportedClassVersionError: com/android/apksigner/ApkSignerTool has been compiled by a more recent version of the Java Runtime (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:763) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) at java.net.URLClassLoader.access$100(URLClassLoader.java:74) at java.net.URLClassLoader$1.run(URLClassLoader.java:369) at java.net.URLClassLoader$1.run(URLClassLoader.java:363) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:495) apksigner command failed. – Run with –verbose for more information.[

Процесс «/android_armv7/bin/androiddeployqt» завершился с кодом 15. Ошибка при сборке/развёртывании проекта (комплект: Android для armeabi-v7a (Clang Qt 5.13.2 for Android ARMv7)) Во время выполнения этапа «Сборка Android APK»

Подскажите, в чем проблема. Во всех гайдах достаточно ввести нужную информацию и пакет подписан, а здесь проблемы какие-то)

 , ,

boganet9993 ()

[решено] Работа над С++/Qt/QML приложением

UPD. Спасибо, люди нашлись. Пока неактуально.

Нужна помощь в проекте Xpiks. Xpiks - крос-платформенное приложение на C++/Qt/QML. Задания для фрилансера можно найти тут: https://github.com/ribtoks/xpiks-issues/projects/1 в разделе TODO. Оплата зависит от условной сложности issue. За решения issue с меткой [trivial] - $15, [easy] - $50, [moderate] - $100. Issues с меткой [good first issue] хорошо подходят людям, не знакомым с проектом. Задание считается сделанным после принятия Pull Request. Перевод денег возможен либо по Paypal, либо туда, куда поддерживает Transferwise. Я помогаю по заданию через email или общение в GitHub Issues.

Сейчас над проектом работает 2 человек part-time. Я ищу только одного нового человека, которому такое будет интересно (на организацию больше людей у меня нету времени, к сожалению). Минимальный порог вхождения - 1-2 года на C++.

Кого интересует такое, пишите на dev at xpiksapp dot com. Напишите очень кратко о себе и сколько времени сможете уделять Xpiks. Потом я вас смогу добавить в основной репозиторий на GitHub. Если вас интересует «менторство», такой формат сотрудничества тоже возможен.

 , ,

Ribtoks ()

Qt wigets рендеринг на OpenGL

Добрый день. Подскажите пожалуйста с таким вопросом. Можно ли сделать так, чтобы рендеринг стандартных виджетов (QWidget и потомки) осуществлялся с использованием OpenGL, а не с использованием программного рендера. Вот например, столкнулся я с проектом, который представляет собой помойку из стандартных виджетов вперемешку с QML виджетами QQuickWidget и подумал, раз QML виджеты рисуются через OpenGL, то пусть бы все рисовалось через OpenGL. И еще вопрос: как вы относитесь к смещиванию стандартных виджетов и qml? Не приводит ли это к просадкам в производительности? Можно ли все делать полностью на qml или без виджетов не обойтись?

 , ,

rumgot ()

Засмеялся/проиграл

Короче пишу плеер изучаю qt c qml.
qml все хвалят за красоту и чистоту, и он дейтвительно классный и гораздо удобнее и проще html, я теперь щитаю xml безобразие из веба надо выкидывать и сделать что то подобное для страниц но уже естественно совместимое с жс апи.

У этой хрени все свойства (если они не прописаны константой) как гетеры по сути динамические. И вот блин в моей реализации таймлайн с окном растягивается и ползунок естественно тоже должен пересчитывать положение на этом таймлайне, как это решено на qml (чтоб не тянуть кота за яйца):

Rectangle {
    id: timeLine
    y: 85; z: 2
    height: 20
    color: "transparent"
    border.width: 1
    border.color: "#6e6e6e"
    anchors.right: parent.right
    anchors.rightMargin: 5
    anchors.left: parent.left
    anchors.leftMargin: 115

    Rectangle {
        id: timeSlider
        x: /* 0 - было */ (timeLine.width - timeSlider.width) * window.progress
        y: -1
        width : 33
        height: 22
        radius: 3
        color : window.reverseColor
        border.color: "#737373"
        border.width: 1

        MouseArea {
            anchors.fill: parent
            cursorShape: Qt.PointingHandCursor
            acceptedButtons: Qt.LeftButton

            drag {
                target: timeSlider
                axis: Drag.XAxis
                minimumX: 0
                maximumX: timeLine.width - timeSlider.width

                onActiveChanged: {
                    if(drag.active) { //
                        // Dragging started
                    } else {
                        // Dragging finished
                        window.progress = timeSlider.x / (timeLine.width - timeSlider.width);
                    }
                }
            }
        }
    }
}

слайдер по оси икс динамически получается из длинны активной зоны таймлайна полученой из ширины таймлайна минус ширина слайдера умножить на некое процентное число получаемое из ... положения слайдера по оси икс разделить на активную зону таймлайна. Это жесть но это работает, но блин это жесть.
Ползунок так то еще должен при проигрывании двигаться, это надо будет время делить на длинну трека и записывать в переменную прогресс которая будет двигать ползунок и в принципе это все облегчает, но блин мне не нравится.
Просто потому что кто то завтра в этих апи что нибудь наменяет и все перестанет работать, а как по другому сделать здесь я не знаю, и плюс непонятно еще как будет двигающийся ползунок одновременно с размером окна сторить что то в эту злополучную переменную на которой все держится.

 

uin ()

qml mxe: module «QtQuick.Layouts» plugin «qquicklayoutsplugin» not found

сделал git clone, make qt5, скопировал в каталог с .exe все qml директории, все директории плагинов, всё как всегда

выдаёт module «QtQuick.Layouts» plugin «qquicklayoutsplugin» not found

чё делать?

 , ,

luntik2012 ()

Добавить в плазмоид выбор иконки (plasma5, qml)

В большинстве плазмоидов иконка жёстко прописана в main.qml. Обычно пофиг, да и ручками вписать своё несложно, но когда после обновления kde-frameworks вместо симпатичной мне лично цветной олдскульной иконки десктопа появился чёрный квадрат с полосочкой («свернуть все окна», три варианта, напр., https://store.kde.org/p/1320759), я таки озверел. Ну не люблю я «flat-design» и не хочу, чтобы мне его навязывали. В то же время, например kickoff-menu вполне позволяет выбирать любую картинку, хоть говняшку из эмодзи. Попытался найти в /usr/share/plasma/plasmoids/org.kde.plasma.kickoff/contents/ui/, как это сделано, чтобы скопипастить в ~/.local/share/plasma/plasmoids/org.kde.plasma.minimizeall.big/contents/ui/main.qml, но ниасилил, в kickoff-menu 20 файлов, и что откуда выцарапывать и править непонятно.

Есть ли простой способ? QML копаю впервые в жизни, беглое гугление туториалов не нашло.

 , ,

danhuu ()

QML разработка приложения для Android

Приветствую!

Ищу исполнителя (возможно несколько исполнителей) на следующую задачку:

Необходимо доработать пример из Qt texteditor (QTDIR/Examples/Qt-5.14.0/quickcontrols2/texteditor/) под Андроид, исправив в нём следующие проблемы режима редактирования:

  • убрать мерцание при активации виртуальной клавиатуры (сейчас при отображении и скрытии виртуальной клавиатуры экран мерцает)
  • при отображении виртуальной клавиатуры курсор должен быть виден (сейчас, если добавить много пустых строк, закрыть виртуальную клавиатуру, проскролить в самый низ, тапнуть в нижней области документа, то при следующем отображении клавиатуры курсор остаётся за клавиатурой и не виден пользователю)
  • исправить проблему с форматированием (сейчас, если выделить слово, применить к нему какое либо форматирование, например выделить жирным, потом поставить курсор в другой абзац, а потом вернуться для редактирования выделенного жирным слова, то форматирование пропадает).

Интересует сроки и стоимость, плюс ваш опыт работы с подобными задачами (редактор текста для мобильных платформ).

По итогу выполнения задания нужен будет именно код реализующий данный функционал. Тестируем на собранной демке в виде apk-файла, когда всё заработает, как описано в задании – оплата и после передача кода.

P.S. Ну и вообще интересует вопрос – имеет ли смысл затевать большой проект на QML, где центральным функциональным элементов интерфейса будет редактор текста (из моего предыдущего опыта с виджетами для Android редактор текста очень сырой с огромным количеством недоработок, в отличии от того же iOS), или лучше сразу делать нативными средствами?

 , ,

dimkanovikov ()

[решено] Работа над open-source С++/Qt приложением за $

UPD. Пока больше не ищу помощь.

Нужна помощь в проекте Xpiks. Xpiks - крос-платформенное приложение на C++/Qt/QML. Задания для фрилансера можно найти тут: https://github.com/ribtoks/xpiks/projects/6 в разделе TODO. Оплата зависит от условной сложности issue. За решения issue с меткой [trivial] - $10, [easy] - $50, [moderate] - $150. Issues с меткой [learning] хорошо подходят людям, не знакомым с проектом. Задание считается сделанным после принятия Pull Request. Перевод денег возможен либо по Paypal, либо туда, куда поддерживает Transferwise. Я помогаю по заданию через email или общение в GitHub Issues.

Сейчас над проектом работает 1-2 человек part-time. Я ищу только одного нового человека, которому такое будет интересно (на организацию больше человек у меня нету времени, к сожалению). Мне интересно «долгосрочное» сотрудничество, заданий есть очень много. Кого интересует такое, пишите на xpiks at outlook dot com. Мой часовой пояс - UTC-8 (Pacific Time) - на случай, если я не сразу отвечу.

 , ,

Ribtoks ()

Как исправить выравнивание чекбоксов в настройках системого трея kde?

  • plasma-5.16.4
  • qt-5.13

 , ,

zombi_pony ()

FluffyChat портирован на десктоп.

Выдержка из https://matrix.org/blog/2019/05/10/this-week-in-matrix-2019-05-10/:

FluffyChat is now also available as a Snap package for desktop Linux https://snapcraft.io/fluffychat :D
It’s a Matrix client written in Qml for Ubuntu Phones. Now it is working for Linux Desktop too.

Progress has been made at the end2end encryption for FluffyChat. Qml bindings for the libolm library are mostly ready and the app can now create keys and upload keys to the server. Device tracking is now implemented too.

E2E when? SOON! (Прогресс) See the branch here: https://gitlab.com/ChristianPauly/fluffychat/tree/e2eencryption

Осталось портировать на Android/iOS и будет кошерная альтернатива семейству Riot.

 , , , ,

commagray ()

QML на десктопе

Изучаю QML на примере Qt Quick Controls 2, но столкнулся с парой эпичных косяков:

  1. Ресайз окна приводит к пляскам виджетов (пример). Советуют использовать софтварный opengl, но это убивает всю идею QML.
  2. frameless window фактически нереализуем, так как при анимации пользовательские события блокируются. В итоге если у нас где-то крутится спинер - перемещать/ресайзить окно нельзя. При этом перемещать/ресайзить окно за пределы экрана тоже нельзя.

Вопрос к тем кто уже пытался что-либо соорудить на QML - как оно? Я так понимаю, что оно только для встройки, где окно всегда фиксированного размера.

Сам QML мне понравился, но пока я не найду решение хотя бы для первого пункта - я его использовать не могу.

 ,

RazrFalcon ()

QtWebEngine без QML

QtWebEngine в принципе можно собрать без QML? Как я понял, это жёсткая зависимость, но не понятно почему.

 ,

RazrFalcon ()

Новое видео про Qt и QML на русском

Учитывая холивар, который традиционно развернулся в новости о бесплатной конференции Qt в Москве, подолью маслица в огонь.

Недавно я выпустил видео, которое пополнило на Youtube немногочисленный ряд видеороликов о Qt и QML на русском языке:

Промышленная разработка на Qt и QML

Там рассказывается именно про реальный проект в области мобильной разработки, который имеет единую кодовую базу и под десктоп и под Android. Видео не обучающее, а скорее информационное, что такой вид разработки возможен и дает неплохой результат.

Спойлер: при подготовке видео я ошибся, и сказал что клиент Telegram написан на Qt+QML, это неправильно - там только Qt. На деле я смотрел код какого-то другого клиента, а мне почему-то запомнилось что это был телеграм.

Длительность ролика час, а я периодически говорю очень занудно, поэтому в описании к видео сделано содержание с метками времени на все обсуждаемые темы. Для особых гурманов там есть даже экономическая часть.

 , , ,

Xintrea ()

Добавить размытие фона виджету Plasma

Есть виджет RSS Indicator, классная вещь, но есть раздражающая деталь - фон не размыт как полагается. При этом у тултипов фон размыт, как у всей Плазмы.

https://pp.userapi.com/c846123/v846123463/1b2524/cYOWNbmx614.jpg

Как сделать фон самого виджета размытым?

Код самого виджета: https://github.com/cute-jumper/plasma-rss-indicator

 , ,

Deleted ()

Unit тесты в qml

Всем привет! Знающие люди, подскажите пожалуйста, как делать юнит тесты в qml? Вроде для этого есть специальный тип TestCase, но как быть если мои qml файлы зависят от объекта в c++ ?

 , ,

username007 ()

Создание фиктивного провайдера местоположения в Qt/QML - Странный сегфолт в Java

На основании обсуждения в теме «Самописный провайдер навигационных данных под Android - возможно ли такое?»...

Взяв за основу статью «Тестирование приложений в Android с использованием фиктивных данных о местоположении»...

Я сделал следующий проект:

https://github.com/xintrea/fakeLocationProviderOnQt

Он нужен мне для проверки того, может ли провайдер, созданный через метод addTestProvider(), поставлять данные геолокации для всей ОС Android (т. е. не только для приложения, в котором он запущен).

Проект должен быть на Qt/QML, поэтому вызовы Java-кода делаются через JNI. В данном примере есть просто две кнопки (Setup и Update), и при нажатии на каждую вызывается следующий Java-код:

    // Инициализация фиктивного провайдера
    public void setupFakeLocationProvider() {
        Log.w(TAG, "Java: setupFakeLocationProvider start");

        if(this==null) {
            Log.w(TAG, "For JniEventActivity this is null");
            return;
        }

        // Создание экземпляра класса MockLocationProvider
        // с контекстом данной Активности
        mock = new MockLocationProvider(LocationManager.GPS_PROVIDER, this);
        Log.w(TAG, "After new MockLocationProvider");

        //Set test location
        mock.pushLocation(45.0, 45.0);
        Log.w(TAG, "After mock.pushLocation");

        Log.w(TAG, "Java: setupFakeLocationProvider stop");
    }


    // Обновление значений координат в фиктивном провайдере
    public void updateFakeLocationProvider() {
        Log.w(TAG, "Java: updateFakeLocationProvider");
        // Пока ничего этот код не делает
    }
Вот это место в самом проекте: https://github.com/xintrea/fakeLocationProviderOnQt/blob/bdb675186094402a37c0...

Проблема в том, что при выполнении метода setupFakeLocationProvider(), выводится только строчка:
Java: setupFakeLocationProvider start

и больше строчек нет. Но сегфолта сразу не происходит, приложение как будто продолжает работать. И если нажать вторую кнопку, то выполнится метод updateFakeLocationProvider(), появится строка:
Java: updateFakeLocationProvider

и после этого произойдет сегфолт:
Core::setupFakeLocationProvider()): setupFakeLocationProvider from C++
W JniEventActivity: Java: setupFakeLocationProvider start
W libJniFakeLocationSample.so: ../JniFakeLocationSampleSrc/src/core/Core.cpp:119 (void Core::updateFakeLocationProvider()): updateFakeLocationProvider from C++
F art     : art/runtime/java_vm_ext.cc:410] JNI DETECTED ERROR IN APPLICATION: JNI CallVoidMethodV called with pending exception java.lang.IllegalStateException: System services not available to Activities before onCreate()
F art     : art/runtime/java_vm_ext.cc:410]   at java.lang.Object android.app.Activity.getSystemService(java.lang.String) (Activity.java:5381)
F art     : art/runtime/java_vm_ext.cc:410]   at void ru.farwater.gnss.fakelocsample.MockLocationProvider.<init>(java.lang.String, android.content.Context) (MockLocationProvider.java:16)
F art     : art/runtime/java_vm_ext.cc:410]   at void ru.farwater.gnss.fakelocsample.JniEventActivity.setupFakeLocationProvider() (JniEventActivity.java:91)
F art     : art/runtime/java_vm_ext.cc:410]   at void org.qtproject.qt5.android.QtNative.startQtApplication() (QtNative.java:-2)
F art     : art/runtime/java_vm_ext.cc:410]   at void org.qtproject.qt5.android.QtNative$6.run() (QtNative.java:359)
F art     : art/runtime/java_vm_ext.cc:410]   at void org.qtproject.qt5.android.QtThread$1.run() (QtThread.java:61)
F art     : art/runtime/java_vm_ext.cc:410]   at void java.lang.Thread.run() (Thread.java:833)
F art     : art/runtime/java_vm_ext.cc:410]
F art     : art/runtime/java_vm_ext.cc:410]     in call to CallVoidMethodV
F art     : art/runtime/java_vm_ext.cc:410]     from void org.qtproject.qt5.android.QtNative.startQtApplication()
F art     : art/runtime/java_vm_ext.cc:410] "qtMainLoopThread" prio=5 tid=10 Runnable
Полный текст ошибки: https://pastebin.com/D4SxRyYm

Насколько я понимаю, главная проблема в том, что «System services not available to Activities before onCreate()».

Она возникает в конструкторе класса MockLocationProvider на строке:
LocationManager lm = (LocationManager) ctx.getSystemService(Context.LOCATION_SERVICE);

Вот это место в коде: https://github.com/xintrea/fakeLocationProviderOnQt/blob/bdb675186094402a37c0...

Люди в интернете говорят, что проблема может быть из-за того, что переменная ctx (в которую передается указатель на текущую Activity) просто не определена, так как у активности еще не вызван метод onCreate(): https://ru.stackoverflow.com/questions/448723/Ошибка-java-lang-illegalstateex...

Но в данном случае у меня активность создается задолго до того, как пользователь будет нажимать на кнопки для вызова Java-кода.

В общем, в чем может быть проблема, как ее исправить?

 , , , ,

Xintrea ()

Как в QML нарисовать прямоугольник на весь экран из любого уровня вложенности?

В QML можно позиционировать элементы только относительно элементов того же уровня или относительно родителя. И координатная система элемента тоже рассчитывается как относительная относительно координатной системы родителя.

Однако может встать задача спозиционировать элемент относительно экрана на любом уровне вложенности.

Например, если сделан элемент «Небольшое окно уведомления с кнопкой OK», который используется в разных частях программы, то он должен иметь возможность сделать прямоугольную область MouseArea на весь экран. Эта область должна располагаться под элементами данного окна, чтобы не давать нажимать на другие элементы интерфейса программы, которые находятся за данным окном. Ну, то есть, поведение как у модального окна.

Выглядит это примерно так:

Item {
    id: root

    width: sizeMetric*0.4
    height: sizeMetric*0.5

    // Область клика мышкой на весь экран чтобы невозможно было кликнуть под элементами сообщения
    Rectangle {
        id: fullScreenRectangle

        width: mainWindow.width
        height: mainWindow.height

        anchors: - как?

        color: "#80101010"

        MouseArea {
            id: fullScreenMouseArea

            anchors.fill: parent

            onClicked: {
                console.log("Disable click under message");
            }
        }
    }

    // Элементы окна
    Rectangle {
        id: windowInterface

        anchors.fill: parent
        ...
    }
}

Элемент fullScreenRectangle можно позиционировать только относительно root или windowInterface. Но элемент root не имеет информации о своем настоящем положении на экране, во всяком случае я не знаю как эту информацию получить.

Если сделать так:
Rectangle {
        id: fullScreenRectangle

        width: mainWindow.width
        height: mainWindow.height

        x: 0
        y: 0
        ... 
}

То прямоугольник будет отрисован не относительно 0,0 экрана, а относительно 0,0 элемента root.

В общем, вопрос в том, как можно в QML позиционироваться относительно экрана.

 , , ,

Xintrea ()

Как отловить момент «выталкивания» (pop) страницы в StackView в QML?

Все приложение у меня построено на StackView. В приложении есть страница выбора файла, которое используется в нескольких частях приложения. В коде она описана так:

    StackView {
        id: stackView

        ...

        // Страница с виджетом выбора файла
        Component {
            id: fileSelectDialogComponent

            FileSelect {
                id: fileSelectDialog
                anchors.fill: parent
                enabled: Stack.status === Stack.Active
            }
        }

Выбор файла вызывается так:
// Вызывается диалог выбора файла
qmlGlobalParameters.fileSelectDialogStartDirectory="тут_имя_директории";
qmlGlobalParameters.fileSelectDialogStartFileName="тут_имя_файла";
qmlGlobalParameters.fileSelectDialogResult="";
stackView.push( fileSelectDialogComponent );

Страница выбора файла сама себя закрывает через вызов pop() для stackView при нажатии кнопки Ok или Cancel.

Теперь сами проблемы:

Так как тип Component не позволяет создавать себе свойства, а позволяет только задавать идентификатор id, то я не могу «вытащить» fileSelectDialog как свойство property alias для fileSelectDialogComponent. Поэтому мне приходится передавать параметры в объект fileSelectDialog не напрямую (потому что я достучаться до него не могу), а через глобальный объект qmlGlobalParameters, о котором «знает» и вызывающий код, и сам тип fileSelectDialog. И это мне очень не нравится. Я сделал вот так «чтоб работало», но хочу переделать так, чтобы по нормальному передавать данные в объект, а так же чтобы иметь возможность работать с сигналами этого объекта.

Но пока этого не сделано, мне нужно научиться ловить момент «выталкивания» компонента fileSelectDialogComponent из стека, чтобы обработать сделанный в этом компоненте выбор файла. В StackView нет сигналов, которые бы вызывались при действии pop(). Привязаться к сигналам fileSelectDialog я не могу, потому что он сидит внутри fileSelectDialogComponent, и потому достучаться до него невозможно. У самого типа Component объекта fileSelectDialogComponent тоже нет сигналов, оповещающих о том что он выталкивается из стека. В общем, везде какие-то странные ограничения, из-за которых я не могу поймать момент завершения работы страницы выбора файла.

Вопрос: как можно отловить этот момент в существующей структуре кода? А как можно изменить код, чтобы вышеуказанных проблем не стояло в принципе?

 , , , ,

Xintrea ()

Как в QML на объекте Map наиболее оптимизированно показать часть QGeoPath?

Имеется объект класса QGeoPath, который хранит ~3500 точек. Заказчик требует, чтобы в программе была настройка, какую часть запомненного трека отрисовывать. Условно говоря, 150 точек, 300 точек, 500 точек, 1000, 2000, полный трек.

В самом классе QGeoPath нет возможности указать, на какой точке остановиться при отрисовке трека. Поэтому с таким классом видится только два пути:

1. Делать копию объекта, укорачивать до нужной длинны, и этот объект и отрисовывать на карте Map.
2. Или копировать только нужные данные из этого объекта в отображаемый и отрисовывать его на карте Map. (Возможно, это более оптимизированно, чем вариант 1, но не факт).

Небольшие подробности: экземпляр QGeoPath пополняется новыми точками 10 раз в секунду. Пока трек не достиг длинны 3500 точек, новые точки просто добавляются в «голову». Когда длинна становится 3500, работает алгоритм «змейки», то есть в голову добавляется точка, и в «хвосте» точка удаляется.


Класс QGeoPath - это, по сути, QList<QGeoCoordinate>. То есть, это не массив, а очень фрагментированная в памяти структура. Делать с нее копию таких данных 10 раз в сек, только для того, чтобы показать _часть_ данных - это какой-то дикий оверхед.

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

 , , ,

Xintrea ()

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

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

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

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

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

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

 , ,

Xintrea ()