R
Dec. 19, 2018, 8:10 p.m.

Qt quick на raspberry 3. Очень медленно.

QML, ARM

Приветствую. Реализовал интерфейс с использованием QML в винде на ПК. Однако собрав этот же проект на малине (raspbian), я получил дико лагающее приложение. Хотя интерфейс крайне примитивен. Также приложение выдает сообщение "JIT is disabled for QML. Property bindings and animations will be very slow. Visit https://wiki.qt.io/V4 to learn about possible solutions for your platform." В интернетах пишут что надо включить поддержку OpenGL на малине, но есть нюанс: дисплей у меня работает по SPI интерфейсу, а не HDMI. Кто что может подсказать?

5

Do you like it? Share on social networks!

7
Алексей Внуков
  • Dec. 19, 2018, 8:16 p.m.
  • (edited)

сейчас делаю проект на малине, как ось использую ArchLinux, Qt 5.12 проект на QML - сильных лагов не замечено. работаю непосредственно на малине. можно пример кода?

    linq
    • Dec. 19, 2018, 8:17 p.m.

    Что за дисплей такой?

      Алексей Внуков
      • Dec. 19, 2018, 8:19 p.m.

      какой? подключил клаву и морду, как стандартный пк

        Evgenii Legotckoi
        • Dec. 19, 2018, 8:21 p.m.

        Добрый день!

        Не совсем уверен, как именно соотносится OpenGL и SPI интерфейс, но OpenGL же - это поддержка отрисовки графики средствами графической карты.
        То есть, если правильно понимаю, то вам должно быть достаточно просто включить поддержку OpenGL на Raspberry 3. А библиотеки малины уже сами должны разобраться, в каком виде высылать отрисованную графику на интерфейс.

        1. Open raspi-config
        2. Advanced Options
        3. GL Driver
        4. GL(Full KMS)

        Пробовали эти шаги повторить? Если нет, то сделайте это. Если проблема действительно только во включении OpenGL, то это должно решить проблему.

          Алексей Внуков
          • Dec. 19, 2018, 8:21 p.m.

          типа родного дисплея, которые подключаются через шлейф на малине и имеют на борту тач.

            R
            • Dec. 19, 2018, 8:47 p.m.
            • (edited)

            У меня тоже возникли сильные сомнения в том что отрисовка во фрэймбуффер и отправка из него по SPI как-то связаны, когда я такое услышал на другом форуме. Включать GL драйвер я пробовал, это не помогло. Использую qt5.7. Может из-за того что нет компиляции QML? Как в более поздних версиях? Вот пример кода. Просто переключение фокуса между элементами уже тормозит.

            1. Page
            2. {
            3. focus: true
            4. width: 480
            5. height: 320
            6. Image
            7. {
            8. source: "images/фон.png"
            9. anchors.centerIn: parent
            10. z: 0
            11. }
            12. ListView
            13. {
            14. id: mainMenulistView
            15. anchors.fill: parent
            16. anchors.centerIn: parent
            17. anchors.leftMargin: 35
            18. focus: true
            19. spacing: 5
            20. orientation: ListView.Horizontal
            21. activeFocusOnTab: true
            22. model: ListModel
            23. {
            24. ListElement
            25. {
            26. title: "Печать";
            27. selImage: "images/печать-фокус.png"
            28. deselImage: "images/печать.png"
            29. }
            30. ListElement
            31. {
            32. title: "Настройки";
            33. selImage: "images/настройки-фокус.png"
            34. deselImage: "images/настройки.png"
            35. }
            36. ListElement
            37. {
            38. title: "Инфо";
            39. selImage: "images/инфо-фокус.png"
            40. deselImage: "images/инфо.png"
            41. }
            42. }
            43.  
            44. delegate: Image
            45. {
            46. id: rect
            47. //source: ListView.isCurrentItem ? model.selImage : model.deselImage
            48. source: activeFocus ? model.selImage : model.deselImage
            49. anchors.verticalCenter: parent.verticalCenter
            50. width: activeFocus ? 134 : 130
            51. }
            52.  
            53. onCurrentIndexChanged:
            54. {
            55.  
            56. }
            57. Keys.onLeftPressed:
            58. {
            59. mainMenulistView.decrementCurrentIndex();
            60. console.log(mainMenulistView.currentIndex)
            61. }
            62. Keys.onRightPressed:
            63. {
            64. mainMenulistView.incrementCurrentIndex();
            65. console.log(mainMenulistView.currentIndex);
            66. }
            67. Keys.onSpacePressed:
            68. {
            69. if(mainMenulistView.currentIndex == 0)
            70. {
            71. console.log("enter to Print");
            72. stackView.push("menuPrint.qml");
            73. }
            74. else if(mainMenulistView.currentIndex == 1)
            75. {
            76. console.log("enter to Settings");
            77. stackView.push("menuSettings.qml");
            78. }
            79. }
            80. }
            81. }
              Docent
              • Dec. 20, 2018, 1:05 a.m.

              У SPI интерфейса-дисплея скорость медленная, отрисовка 2-3 кадра в сек, подключите нормальный HDMI и запустите ту же самую программку. Малина вполне неплохо справляется с FullHD при правильных настройках, что она с QML не справится как-то не верю.

                Comments

                Only authorized users can post comments.
                Please, Log in or Sign up
                • Last comments
                • AK
                  April 1, 2025, 11:41 a.m.
                  Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
                • Evgenii Legotckoi
                  March 9, 2025, 9:02 p.m.
                  К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
                • VP
                  March 9, 2025, 4:14 p.m.
                  Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
                • ИМ
                  Nov. 22, 2024, 9:51 p.m.
                  Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
                • Evgenii Legotckoi
                  Oct. 31, 2024, 11:37 p.m.
                  Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup