Russian Qt Forum
Май 04, 2024, 23:39 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: 1 2 [3] 4
31  Qt / Qt Quick / Re: Как получить id текущего объекта/кнопки : Декабрь 25, 2016, 19:48
Komorebi, спасибо, тоже интересный вариант

Цитировать
- можно хранить список функций в keyValue и вызывать их по indexу кнопки.
откуда этот index взять? из модели?
32  Qt / Qt Quick / Re: Должен ли Settings сохранять значения после закрытия приложения? : Декабрь 25, 2016, 17:25
Решение:
в main.cpp добавить
Код:
    QGuiApplication app(argc, argv);
    app.setOrganizationName("test");
    app.setOrganizationDomain("test");
    app.setApplicationName("test");

тоже самое относится и как если бы мы работали с QSettings
33  Qt / Qt Quick / Re: Должен ли Settings сохранять значения после закрытия приложения? : Декабрь 25, 2016, 12:41
вот такой вариант тоже не сохраняет при перезапуске

Код:
		ApplicationWindow {
id: windowRoot
visible: true
width: 600
height: 700
title: qsTr("Hello World")

property int testQ: settings.q

Settings {
id: settings
property int q
}

MouseArea {
anchors.fill: parent
onClicked: {
if (!testQ)
testQ = 1
console.log("testQ = " + testQ)
testQ++
}
}

Component.onDestruction: {
settings.q = testQ
console.log("q = " + settings.q)
}
34  Qt / Qt Quick / Re: Как получить id текущего объекта/кнопки : Декабрь 25, 2016, 12:31
Просто назначьте callbackи, это ж яваскрипт.
это вы про какое сообщение? И куда их добавлять?
Вопрос уже решён, но всё равно интересно.
35  Qt / Qt Quick / Должен ли Settings сохранять значения после закрытия приложения? : Декабрь 24, 2016, 20:34
Здравствуйте.
Как я понял Settings на то и создан, чтобы хранить настройки даже после закрытия и открытия приложения. Но у меня почему то после повторного открытия приложения значения не восстанавливаются. Подскажите пожалуйста как правильно использовать его, чтобы сохраняло?

кусок кода:
Код:
ApplicationWindow {
    id: windowRoot
    visible: true
    width: 600
    height: 700
    title: qsTr("Hello World")


    Settings {
        id: settings
        property int q: settings.q ? "11" : "22"
    }

    MouseArea {
        anchors.fill: parent
        onClicked: {
            console.log("q = " + settings.q)
            settings.q++
        }
    }
36  Qt / Qt Quick / Re: Высота слоя через Loader = 0. Как исправить : Декабрь 17, 2016, 17:28
Решение: вынести Loader из ректангла:

Код:
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.0

ApplicationWindow {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    Flickable {
        id: flic
        anchors.fill: parent
        contentHeight: wrapper.height
        ScrollBar.vertical: ScrollBar { }
        ScrollBar.horizontal: ScrollBar { }

        Column {
            id: wrapper
            spacing: 20
            width: flic.width

            Rectangle {
                width: 300
                height: 300
                color: "blue"
            }
            Rectangle {
                id: rectB
                width: 300
                height: 300
                color: "black"
                MouseArea {
                    anchors.fill: parent
                    onClicked: console.log(rectLoader.height)
                }
            }
            Loader {
                id: pageLoader
                source: "page-1.qml"
            }
            Button {
                id: butB
                text: "Закрыть"
            }
        }

    }
}

Page1.qml
Код:
import QtQuick 2.7

Column {
    id: pageColumn
    spacing: 30
    Text {
        text: "111"
        font.pointSize: 20
    }
    Rectangle {
        width: 100
        height: 400
        color: "green"
    }
    Rectangle {
        width: 100
        height: 400
        color: "red"
    }
}
37  Qt / Qt Quick / Высота слоя через Loader = 0. Как исправить : Декабрь 16, 2016, 14:42
Делаю вставку через Loader страницы qml. Но почему то высота rectLoader (Rectangle ), где лежит Loader равна 0 и следующий объект располагается от объекта который был до Loader-а.
Делаю привязку rectLoader к элементу до и после, но всё безуспешно. Наверно типичная ошибка новичка, подскажите пожалуйста как исправить.

Код:
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.0

ApplicationWindow {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    Flickable {
        id: flic
        anchors.fill: parent
        contentWidth: wrapper.width
        contentHeight: wrapper.height
        ScrollBar.vertical: ScrollBar { }
        ScrollBar.horizontal: ScrollBar { }

        Column {
            id: wrapper
            spacing: 20
//                anchors.fill: parent
//                height: 1200;

            Rectangle {
                width: 300
                height: 300
                color: "blue"
            }
            Rectangle {
                id: rectB
                width: 300
                height: 300
                color: "black"
                MouseArea {
                    anchors.fill: parent
                    onClicked: console.log(rectLoader.height)
                }
            }
            Rectangle {
                id: rectLoader
                anchors.top: rectB.bottom
                anchors.bottom: butB.top
                height: pageLoader.height
                Loader {
                    id: pageLoader
                    source: "Page1.qml"
                }
            }
            Button {
                id: butB
                //height: pageItem.height
                text: "Закрыть"
            }
        }

    }
}

Page1.qml
Код:
import QtQuick 2.7

Item {
    id: pageItem
    height: pageColumn.height
    Column {
        id: pageColumn
        spacing: 30
        Text {
            text: "111"
            font.pointSize: 20
        }
        Rectangle {
            width: 100
            height: 400
            color: "green"
        }
        Rectangle {
            width: 100
            height: 400
            color: "red"
        }
    }
}
38  Qt / Qt Quick / Re: Как получить id текущего объекта/кнопки : Декабрь 16, 2016, 14:33
решил теперь вот так вопрос, через ComboBox
Код:
            ComboBox {
                id: zadaniye
                currentIndex: 0
                displayText: "Задание: " + currentText
                model: [
                    "1","2","3","4","5","6","7","8","9",
                    "10","11","12","13","14","15","16","17","18","19",
                    "20","21","22","23","24","25","26","27","28","29",
                    "30","31","32","33","34","35","36","37","38","39",
                    "40","41","42","43","44","45","46","47","48","49",
                    "50","51","52"
                ]
            }

            Button {
                id: p1
                text: "Открыть"
                onClicked: {
                    pageid = zadaniye.currentText
                    console.log("onClicked! pageid = " + pageid )
                    stack.push(comp2)
                }
            }
39  Qt / Qt Quick / Re: Как получить id текущего объекта/кнопки : Декабрь 16, 2016, 10:42
1) Почему не ListView/GridView с делегатом-кнопкой и модель с настройками для каждой кнопки?
Не подумал, попробую, спасибо.

2) Эти 52 qml файла все разные? может быть это несколько разных с разными настройками? тогда настройки с именем файла поместить также в модель
Да, все файлы будут разные.
40  Qt / Qt Quick / Re: Как получить id текущего объекта/кнопки : Декабрь 15, 2016, 17:05
решил задачу через поле text самой кнопки.
Код:
            Button {
                id: p1
                text: "1"
                onClicked: {
                    pageid = text
                }
            }
41  Qt / Qt Quick / Re: Как получить id текущего объекта/кнопки : Декабрь 15, 2016, 14:08
Спасибо за разъяснения.
Ну если коротко, то:
имеется StackView. На 1 экране будут расположены 52 кнопки. На 2 экране будет вложен через Loader{} файл соответствующий иду нажатой кнопки, 52 кнопки = 52 файла qml.
В ручную создавать не хочу, поэтому хочу получить id нажатой кнопки и по иду вложить файл (source: "page-"+pageid+".qml")
Возможно есть и другое решение. Но если ид не получается взять, тогда создать все кнопки в ручную.
42  Qt / Qt Quick / Как получить id текущего объекта/кнопки : Декабрь 14, 2016, 19:55
Имеется кнопка, необходимо получить id текущей нажатой кнопки. Кнопки будут генерироваться динамически и возможности прописать id нет.
Как вариант this.id - но он не работает, может кто знает?  Улыбающийся

Код:
property string pageid
....
            Button {
                id: p1
                text: "Push 1"
                onClicked: {
                    pageid = String(this.id) // не работает!! как получить?
                    console.log(pageid)
                }
            }
43  Qt / Qt-инструментарий / Re: Qt Simulator больше не поддерживается? : Декабрь 13, 2016, 19:27
Но удобнее отлаживать на удалённом устройстве
Вы имеете ввиду на своём смартфоне через USB или что?
44  Qt / Qt-инструментарий / Qt Simulator больше не поддерживается? : Декабрь 08, 2016, 11:26
Вчера узнал, что есть такой инструмент как Qt Simulator (https://wiki.qt.io/Qt_Simulator), но судя по исходникам (https://gitorious.org/qt-labs/simulator?p=qt-labs:simulator.git;a=summary) поддержка давно уже не ведётся.
Подскажите, какой инструмент сейчас используют вместо него?
45  Qt / Установка, сборка, отладка, тестирование / Не запускается тестовое приложение на эмуляторе : Ноябрь 28, 2016, 19:11
Здравствуйте.
Qt Creator 4.1.0
Создал пустое приложение Qt Widget, добавил кнопку и лейбел. Сборка и запуск под windows в подрядке. Сборка и запуск под Windows Runtime тоже в порядке.
Но под Android на эмуляторе не хочет запускаться. Всё делал и настраивал по инструкциям.
На эмуляторе:
Сборка успешно, запускается эмулятор, появляется экран блокировки и всё, приложение не запускается. Даже если я разблокирую экран.
пробовал под Android 4.1.2, 5.1, 7.1, где то даже не загружается экран блокировки, постоянная загрузка с надписью "ANDROID".
Лог сборки под Android 4.1.2 armeabi-v7a   https://fnpaste.com/a8Pb
Ошибка в логе:
Код:
Ошибка при сборке/установке проекта BiblicalExercises (комплект: Android для armeabi-v7a (GCC 4.9, Qt 5.7.0) )
Во время выполнения этапа «Установка на устройство Android»

1 раз видел сообщение на английском, что выполняется запуск приложения, но после сообщение пропало, ничего не появилось.

Сборка и запуск под реальный смартфон в порядке.

Подскажите пожалуйста, что можно сделать, чтобы на эмуляторе запустилось?
Страниц: 1 2 [3] 4

Страница сгенерирована за 0.103 секунд. Запросов: 23.