Privacy policyContactsAbout siteOpinionsGitHubDonate
© EVILEG 2015-2018
Recommend hosting
TIMEWEB

А вы готовы к 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.

We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.

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

Comments

Only authorized users can post comments.
Please, Log in or Sign up
МБ
April 21, 2019, 9:40 a.m.
Моисей Бушуев

Qt - Test 001. Signals and slots

  • Result:0points,
  • Rating points-10
AA
April 17, 2019, 7:40 p.m.
Anton Ablin

Qt - Test 001. Signals and slots

  • Result:73points,
  • Rating points1
E
April 17, 2019, 6:16 p.m.
Evgeny

Qt - Test 001. Signals and slots

  • Result:100points,
  • Rating points10
Last comments
April 21, 2019, 4:22 p.m.
Евгений Легоцкой

Через метод setIcon table.horizontalHeaderItem(0).setIcon("qrc://path/to/icon.png")
April 21, 2019, 3:48 p.m.
Евгений Легоцкой

Добрый день! Спасибо за комментарий. Там действительно лучше будет сделать с инициализацией по умолчанию.
U
April 18, 2019, 3:37 p.m.
Unreal_man

А как иконку в хедер задать?
u
April 18, 2019, 2:15 a.m.
uaa

доброго времени,большое спасибо за пример для начинающего)при адаптации к своему проекту столкнулся с таким ньансом:в vepolyline.h в 47 строке нужна инициализация по умолчанию: int m_pointF...
E
April 11, 2019, 12:49 p.m.
Evgeny

Спасибо за ответ) У меня компоновщик на нее ругался просто. Оказалось, просто забыл Q_OBJECT в начале класса указать.
Now discuss on the forum
April 24, 2019, 11:22 a.m.
Ruslan Polupan

Согласен. но ситуация не поменялась. Такое чуство что данные не записываются в модель.
April 24, 2019, 6:20 a.m.
Ruslan Polupan

я так понимаю надо инфорация об устройствах.Я бы пробовал так rust@suse:~> lsblk -PNAME="sda" MAJ:MIN="8:0" RM="0" SIZE="111,8G" RO="0" TYPE="disk" MOUNTPOINT=""NAME="sda1" MAJ:MIN="8...
April 21, 2019, 4:16 p.m.
Евгений Легоцкой

Приветствую Нужно сохранять где-то выбранное значение, а потом восстанавливать его. Или использовать QSettings или добавить метод open(), в который передавать начальные значения для того...
R
April 19, 2019, 9:55 a.m.
RED_Spider

мені важко це зараз навіть перевірити, тому що знайшов коміт, це ще було в 2016 році, і цей код не буде працювати коректно зараз, єдине скажу що це були QThread
Join us in social networks

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