Реклама

А вы готовы к Qt Quick Controls 2.3?

Qt5, Qt Quick Controls, Dev Loop, ui, Qt 5.10

В выпуске Qt 5.10 будут доступны Qt Quick Controls 2.3.

Новый функционал в Qt Quick Controls 2.3:

  • Новые стили
  • Меню и действия (Actions)
  • Палитры

Новые стили

Было внедрено два новых стиля: Fusion и Imagine . Fusion стиль выглядит знакомым для тех, кто использует Qt Widgets. Это реализация на основе QML с тем же дизайном.

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

Меню и действия (actions)

Меню и действия сделали большой шаг вперёд в своём развитии. Были добавлены новые QML типы, которые называются MenuBar , Action и ActionGroup , и Menu которые поддерживают подменю. Теперь возможны вложенные меню, как на настольных платформах. Также добавлена поддержка мнемоник и кнопок.

Использование идентично предыдущему поколению Qt Quick Controls:

import QtQuick 2.10
import QtQuick.Controls 2.3
 
ApplicationWindow {
    id: window
    width: 500
    height: 400
    visible: true
 
    menuBar: MenuBar {
        Menu {
            title: qsTr("&File")
            Action { text: qsTr("&New...") }
            Action { text: qsTr("&Open...") }
            Action { text: qsTr("&Save") }
            Action { text: qsTr("Save &As...") }
            MenuSeparator { }
            Action { text: qsTr("&Quit") }
        }
        Menu {
            title: qsTr("&Edit")
            Action { text: qsTr("Cu&t") }
            Action { text: qsTr("&Copy") }
            Action { text: qsTr("&Paste") }
            MenuSeparator { }
            Menu {
                title: qsTr("&Find/Replace")
                Action { text: qsTr("Find &Next") }
                Action { text: qsTr("Find &Previous") }
                Action { text: qsTr("&Replace...") }
            }
        }
        Menu {
            title: qsTr("&Help")
            Action { text: qsTr("&About") }
        }
    }
}

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

Палитры

Добавлена поддержка настраиваемых палитр, которые на данный момент поддерживаются темами Default, Fusion, Imagine. Остальные темы оформления получат поддержку палитр позже. На скриншоте ниже представлена палитра для темы Default.

Вопросы и ответы:

Что насчёт TableView?

- Мы добились больших успехов в новом TableView, основанном на той же структуре представления элементов Qt Quick, на которой основаны ListView и GridView. Текущая реализация уже способна управлять двумерным набором видимых элементов для текущего видового экрана. Производительность находится на одном уровне с ListView и GridView. Большое количество столбцов не убивает производительность, как в TableView на основе ListView в Qt Quick Controls 1. Следите за новостями в блоге по этому вопросу.

Когда будет исправлена ​​знаменитая проблема «Объект, разрушенный во время инкубации»?

- Мы считаем, что у нас есть необходимые ингредиенты для окончательного решения этой проблемы. Был подготовлен патч к движку QML, который позволяет отложить выполнение встроенных делегатов, чтобы: а) заменить их пользовательскими делегатами во время построения, что не вызовет проблем для асинхронной инкубации и b) производительности (в терминах от времени создания) настраиваемого элемента управления не зависит от встроенных делегатов. Как только необходимый патч к движку QML будет готов, можно будет начать использовать его в Qt Quick Controls 2.

Реклама

Комментарии

  • #
  • 24 ноября 2017 г. 9:05

Интересные нововведения связанных с меню и его представления.

Комментарии

Только авторизованные пользователи могут оставлять комментарии.
Пожалуйста, Авторизуйтесь или Зарегистрируйтесь
  • JaJay
  • 17 декабря 2017 г. 5:16

C++ - Тест 002. Константы

  • Результат 58 баллов
  • Очки рейтинга -2
  • JaJay
  • 17 декабря 2017 г. 4:55

C++ - Тест 001. Первая программа и типы данных

  • Результат 93 баллов
  • Очки рейтинга 8
  • JaJay
  • 17 декабря 2017 г. 4:48

C++ - Тест 001. Первая программа и типы данных

  • Результат 66 баллов
  • Очки рейтинга -1
Последние комментарии
  • EVILEG
  • 7 декабря 2017 г. 9:47

Django - Урок 011. Добавление комментариев на сайт с Django

Визуальный пример чего? комментариев? При ответе на конкретный комментарий рядом с ником отвечающего будет стрелочка и указание ник другого пользователя. Который будет ссылкой на коммента...

  • Bernar
  • 7 декабря 2017 г. 9:24

Django - Урок 011. Добавление комментариев на сайт с Django

есть визуальный пример ?

  • EVILEG
  • 6 декабря 2017 г. 11:30

Django - Урок 011. Добавление комментариев на сайт с Django

Да, так будет даже лучше, я на сайте уже обновил до такого вида код Вот это уже не нужно if request.method == 'POST': Поскольку Вы и так используете метод post, то есть эта про...

  • Bernar
  • 6 декабря 2017 г. 11:19

Django - Урок 011. Добавление комментариев на сайт с Django

сделал немного по другому class EArticleView(View): template_name = 'knowledge/article.html' comment_form = CommentForm def get(self, request, *args, **kwargs): ...

Сейчас обсуждают на форуме
  • EVILEG
  • 16 декабря 2017 г. 17:23

Пауза в многопоточности

QFuture, который возвращается QtConcurrent::map имеет методы pause() и resume() и теоретически должен поддерживать этот функционал. Но для Qt...

  • Миша
  • 15 декабря 2017 г. 11:26

Как найти в QVector макс и мин

Спасибо

  • Galant
  • 14 декабря 2017 г. 19:58

LPT

Понял! Спасибо!

  • EVILEG
  • 14 декабря 2017 г. 13:38

QCustomPlot можно ли построить прерывистую линию на одном графике?

Во-первых: В pro файле проект по идее достаточно указать следующий define для включения возможности рендеринга через OpenGL DEFINES += QCUSTOMPLOT_USE_OPENGL И во вторых:...

  • EVILEG
  • 13 декабря 2017 г. 8:05

В многопоточности выполнять действие только в одном из потоков

Статическиe методs QThread::currentThread(); и QThread::currentThreadId() могут возвращать указатель на поток и его handle id соответственно. Можете попробовать через как...