Форум программистов, компьютерный форум, киберфорум
QML
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 07.11.2018
Сообщений: 9
1

Окна приложения

30.09.2020, 16:18. Просмотров 1613. Ответов 2
Метки нет (Все метки)

Доброго времени суток! При создании интерфейса на QML возникла проблема - задержка при переключении из одного окна в другое. Как я понимаю, при нажатии, к примеру, на кнопку, нужное окно начинает генерироваться и только потом отображается. Используется StackView. Нужно, чтобы все окна были сгенерированы в начале загрузки приложения, а не по сигналу нажатия кнопок. Пусть приложение будет дольше запускаться, но потом должно переключать окна без задержек.
Соответственно вопрос: как можно лучше решить данную проблему? Первый раз работаю с QML, поэтому не совсем понимаю.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.09.2020, 16:18
Ответы с готовыми решениями:

Размер окна приложения
Всем привет, питаюсь написать небольшое приложение. Приложение должно работать либо в полноэкранном...

Закрытие окна/приложения из кода
нужно закрыть окна/приложения из кода( т. е. скажем по условию х=2 закрываем приложение ) по клику...

Запретить перемещение главного окна приложения
Как запретить перемещение главного окна приложения?

Вызов функции после создания окна приложения
Здравствуйте, есть программа в которой создаються виджеты (QPlaintTextEdit), после их создания,...

2
Модератор
Эксперт .NET
5303 / 4098 / 1182
Регистрация: 12.10.2013
Сообщений: 11,909
Записей в блоге: 2
30.09.2020, 20:04 2
Цитата Сообщение от ЕвгенТут Посмотреть сообщение
как можно лучше решить данную проблему?
Наверное, исходя из принципа что принят в QML, создать все окна сразу (как вы и хотите), но видимым будет видно только одно. На счет StackView не могу знать, не использовал, а вот в SwapView у меня никаких задержек не было, плавно перелистываются окна, как и должно быть. Но как я понял из документации, и в вашем случае все окна создаются сразу при создании, а потом просто переключаются. Покажите ваш код, так сказать что-то сложно.
0
Don't worry, be happy
16958 / 9839 / 1895
Регистрация: 27.09.2012
Сообщений: 24,394
Записей в блоге: 2
01.10.2020, 20:50 3
Цитата Сообщение от ЕвгенТут Посмотреть сообщение
как можно лучше решить данную проблему?
StackView уничтожает элементы, которые сам создавал, но не уничтожает те, которые созданы кем-то другим.
Вы можете сами создать свои окна, а потом уже запихивать их в StackView.

Для примера:
Код
import QtQuick 2.13
import QtQuick.Window 2.13
import QtQuick.Controls 2.12
Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    property Item window1: c1.createObject(c1.parent, {color: "green"})
    property Item window2: c1.createObject(c1.parent, {color: "blue"})

    Component {
        id: c1
        Rectangle {
            Component.onCompleted: {
                console.log("create")
            }
            Component.onDestruction: {
                console.log("destroy")
            }
        }
    }



    StackView {
        id: view
        initialItem: Rectangle {
            color: "red"
        }
        anchors.fill: parent
    }



    MouseArea {
        anchors.fill: parent
        onClicked: {
            if (view.depth === 3) {
                view.pop(StackView.Immediate)
            } else if (view.depth === 2) {
                view.push(window2, StackView.Immediate)
            } else {
                view.push(window1, StackView.Immediate)
            }
        }
    }
}
Обратите внимание на вывод в консоль - объекты не уничтожаются при выталкивании.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.10.2020, 20:50

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

Закрытие приложения при закрытии диалогового окна
Очередная микротема от новичка в Qt) Подскажите как закрыть приложение при закрытии...

Смена типа окна во время работы приложения
Пытаюсь по нажатию на кнопку изменить тип окна через if ... else if... но по нажатию на кнопку окно...

Вывод второго окна приложения на второй монитор
Кто может подсказать, как вывести окно на второй монитор. Ответ нашел только для qt5, а нужно под...

Как связать сигнал одного окна и слот другого окна
Здравствуйте! Такой вопрос: Имеется главное окно MainWindow и диалоговое окно Dialog. На диалоговом...

Подстроить размер окна относительно размера другого окна в X11
Есть два риложения, у обоих устанавливается атрибут WA_X11NetWmWindowTypeaDock. Сначала запускается...

Создание модального диалогового окна поверх окна родителя
Не могу не где найти пример как это сделать. Нужно создать модальное окно поверх окна родителя...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.