Вопросы с тегами [qml]

1

голосов
1

ответ
35

Просмотры

Как изменить свойства QML элемента из C ++

Я пишу небольшой интервал QT (5,12) приложений в C ++, который будет двигаться центром QMap каждой секунды. Я пытаюсь обновить координаты, так что центр будет обновляться, но после отладки, он всегда оставаться таким же (исходное значение). Это моя первая попытка с QML, поэтому я помогаю себе с сильфоном связи, но, видимо, я не делаю что-то правильно. https://doc.qt.io/qt-5/qtqml-cppintegration-interactqmlfromcpp.html функция называется Обновление каждую секунду с помощью таймера #include #include недействительными MainWindow :: UpdateCoordinates () {плавать LATDEGM = (60 * 1853,181); плавать DEG2RAD = (ПИ / 180,0); QString speedData = ui-> sboxSpeed-> текст (); BOOL нормально; AirSPEED = speedData.toInt (& нормально); AirCourse = (AirCourse + 360) 360%; Dx = AirSpeed ​​* sin ((поплавок) AirCourse * DEG2RAD); Dy = AirSPEED * сов ((поплавок) AirCourse * DEG2RAD); QString Дат текст = ui-> txtLatitude-> (); Шир = dat.toDouble (); QString dat2 = ui-> txtLongtitude-> текст (); Lon = dat2.toDouble (); Dx / = 3,6; Dy / = 3,6; Шир + = Dy / LATDEGM; Lon + = Dx / (LATDEGM * соз (Lat * DEG2RAD)); ui-> txtLatitude-> SetText (QString :: номер (Lat)); ui-> txtLongtitude-> SetText (QString :: номер (Lon)); // Использование QQmlComponent QQmlEngine двигателя; Компонент QQmlComponent (& двигатель, QUrl (QStringLiteral ( "QRC: /Map.qml"))); QObject * объект = component.create (); QObject * Карта = object-> дети () в (1). если (карта) {Map-> SetProperty ( "newLatitude", лат); Map-> SetProperty ( "newLongitude", Lon); станд :: соиЬ txtLatitude-> текст (); Шир = dat.toDouble (); QString dat2 = ui-> txtLongtitude-> текст (); Lon = dat2.toDouble (); Dx / = 3,6; Dy / = 3,6; Шир + = Dy / LATDEGM; Lon + = Dx / (LATDEGM * соз (Lat * DEG2RAD)); ui-> txtLatitude-> SetText (QString :: номер (Lat)); ui-> txtLongtitude-> SetText (QString :: номер (Lon)); // Использование QQmlComponent QQmlEngine двигателя; Компонент QQmlComponent (& двигатель, QUrl (QStringLiteral ( "QRC: /Map.qml"))); QObject * объект = component.create (); QObject * Карта = object-> дети () в (1). если (карта) {Map-> SetProperty ( "newLatitude", лат); Map-> SetProperty ( "newLongitude", Lon); станд :: соиЬ txtLatitude-> текст (); Шир = dat.toDouble (); QString dat2 = ui-> txtLongtitude-> текст (); Lon = dat2.toDouble (); Dx / = 3,6; Dy / = 3,6; Шир + = Dy / LATDEGM; Lon + = Dx / (LATDEGM * соз (Lat * DEG2RAD)); ui-> txtLatitude-> SetText (QString :: номер (Lat)); ui-> txtLongtitude-> SetText (QString :: номер (Lon)); // Использование QQmlComponent QQmlEngine двигателя; Компонент QQmlComponent (& двигатель, QUrl (QStringLiteral ( "QRC: /Map.qml"))); QObject * объект = component.create (); QObject * Карта = object-> дети () в (1). если (карта) {Map-> SetProperty ( "newLatitude", лат); Map-> SetProperty ( "newLongitude", Lon); станд :: соиЬ удвоить(); Dx / = 3,6; Dy / = 3,6; Шир + = Dy / LATDEGM; Lon + = Dx / (LATDEGM * соз (Lat * DEG2RAD)); ui-> txtLatitude-> SetText (QString :: номер (Lat)); ui-> txtLongtitude-> SetText (QString :: номер (Lon)); // Использование QQmlComponent QQmlEngine двигателя; Компонент QQmlComponent (& двигатель, QUrl (QStringLiteral ( "QRC: /Map.qml"))); QObject * объект = component.create (); QObject * Карта = object-> дети () в (1). если (карта) {Map-> SetProperty ( "newLatitude", лат); Map-> SetProperty ( "newLongitude", Lon); станд :: соиЬ удвоить(); Dx / = 3,6; Dy / = 3,6; Шир + = Dy / LATDEGM; Lon + = Dx / (LATDEGM * соз (Lat * DEG2RAD)); ui-> txtLatitude-> SetText (QString :: номер (Lat)); ui-> txtLongtitude-> SetText (QString :: номер (Lon)); // Использование QQmlComponent QQmlEngine двигателя; Компонент QQmlComponent (& двигатель, QUrl (QStringLiteral ( "QRC: /Map.qml"))); QObject * объект = component.create (); QObject * Карта = object-> дети () в (1). если (карта) {Map-> SetProperty ( "newLatitude", лат); Map-> SetProperty ( "newLongitude", Lon); станд :: соиЬ // Использование QQmlComponent QQmlEngine двигателя; Компонент QQmlComponent (& двигатель, QUrl (QStringLiteral ( "QRC: /Map.qml"))); QObject * объект = component.create (); QObject * Карта = object-> дети () в (1). если (карта) {Map-> SetProperty ( "newLatitude", лат); Map-> SetProperty ( "newLongitude", Lon); станд :: соиЬ // Использование QQmlComponent QQmlEngine двигателя; Компонент QQmlComponent (& двигатель, QUrl (QStringLiteral ( "QRC: /Map.qml"))); QObject * объект = component.create (); QObject * Карта = object-> дети () в (1). если (карта) {Map-> SetProperty ( "newLatitude", лат); Map-> SetProperty ( "newLongitude", Lon); станд :: соиЬ
tomazj
1

голосов
1

ответ
2.6k

Просмотры

Как подключить Python и QML с PySide2?

Я хочу написать простое приложение рабочего стола на Ubuntu, и я подумал, что это простой способ, чтобы использовать Qt с QML, как GUI и Python как язык логики, так как я немного знаком с Python. Теперь я пытаюсь часами, чтобы каким-то образом подключить графический интерфейс и логику, но она не работает. Мне удалось соединение QML -> Python, но не наоборот. У меня есть классы Python, которые представляют свою модель данных, и я добавил кодирование и декодирование функции JSON. Так что сейчас нет базы данных SQL участвует. Но, может быть прямая связь между QML зрения и некоторые базы данных будет делать вещи проще? Так что теперь какой-то код. QML -> Python QML файл: ApplicationWindow {// главное окно ID: Название MainWindow: qsTr ( "Test") Ширина: 640 Высота: 480 сигнал tmsPrint (строка текста) Страница {ID: MainView ColumnLayout {ID: Но это лучший способ сделать это, или лучше создать класс с прорезями и использование setContextProperty, чтобы иметь возможность вызывать их напрямую, без добавления дополнительных сигналов? Python -> QML я не могу это сделать. Я пробовал разные подходы, но никто не работал, и я не знаю, какой из них лучше использовать. То, что я хочу сделать, это, например, показать список объектов и предложить средства для манипулирования данных в приложении и т.д. включает в себя Javascript: Я добавил дополнительный файл application.js с функцией просто напечатать что-нибудь, но это, вероятно, можно было бы использовать для установить контекст текстового поля и т.д. Тогда я попытался использовать QMetaObject и InvokeMethod, но только что получил ошибки с неправильными аргументами и т.д. делают ли такой подход какой-то смысл? На самом деле я не знаю JavaScript, поэтому, если он не нужен, я предпочел бы не использовать его. ViewModel подход, который я создал файл viewmodel.py из PySide2.QtCore импорта QStringListModel класса ListModel (QStringListModel): Защиту __init __ (Я): self.textlines = [ 'привет', 'хо'] супер () .__ __ INIT () и в . main.py я добавил: модель = ListModel () engine.rootContext () setContextProperty ( 'MyModel', модель) и ListView выглядит следующим образом: ListView {ширина: 180; высота: 200 Модель: MyModel Делегат: Текст {текст: model.textlines}} Я получаю сообщение об ошибке «MyModel не определена», но я думаю, что он не может работать в любом случае, так как делегаты только взять один элемент, а не список. Является ли этот подход хорошо один? и если да, то как я могу заставить его работать? Есть совершенно другой подход для манипулирования данных в целях QML? Я ценю вашу помощь! Я знаю, что в документации Qt, но я не доволен. Так может быть, я что-то отсутствует. Но PyQt, кажется, более популярной, чем PySide2 (по крайней мере, Google поиск, кажется, указывают, что) и ссылки PySide часто используют PySide1 или не QML QtQuick способ делать вещи ...
Fabian
1

голосов
1

ответ
550

Просмотры

How to set Value Axis Label Format on QML from milliseconds to mm:ss?

Фон Я использую QtCreator и у меня есть файл с именем myScopeView.qml, который представляет собой вид области действия, подобный пример, приведенный здесь. В myScopeView.qml, есть ChartView, который обновляется каждый второй с таймером, так что график изменения значения по оси X и оси Y. Ось Х представляет время, выраженное в миллисекундах (целочисленных значений), из-за сбора данных, а Y ось представляет значения напряжения (характеризуется как целые значения). Задача График показывает значения оси X, как целое, т.е. 123456789, но хотелось бы, чтобы визуализировать соответствующий мм: сс значение, т.е. 20:34. Я думаю, что я должен изменить значение labelFormat. ValueAxis {ID: axisX мин: 0 макс: 0 tickCount: 5 labelFormat: // Я надеваю» знаю, что я должен установить здесь} Вопрос Можно ли установить конкретное значение в labelFormat, чтобы иметь мм: сс визуализируется? Примечания Вместо модификация labelFormat я пытались использовать функцию Javascript для преобразования, но это решение не работает, потому что преобразование достигается до визуализации и поэтому сюжет ничего не показывает, потому что нет Y значения, связанного с новыми значениями X. Вот почему я прошу команды labelFormat, но я буду признателен также намек Javascript. Я знаю, что QML QtCharts имеет QDateTimeAxis, который обеспечивает мм: сс, но я хотел бы, чтобы преобразовать данные только для визуализации, а не для других целей. сс визуализируется? Примечания Вместо модификация labelFormat я пытались использовать функцию Javascript для преобразования, но это решение не работает, потому что преобразование достигается до визуализации и поэтому сюжет ничего не показывает, потому что нет Y значения, связанного с новыми значениями X. Вот почему я прошу команды labelFormat, но я буду признателен также намек Javascript. Я знаю, что QML QtCharts имеет QDateTimeAxis, который обеспечивает мм: сс, но я хотел бы, чтобы преобразовать данные только для визуализации, а не для других целей. сс визуализируется? Примечания Вместо модификация labelFormat я пытались использовать функцию Javascript для преобразования, но это решение не работает, потому что преобразование достигается до визуализации и поэтому сюжет ничего не показывает, потому что нет Y значения, связанного с новыми значениями X. Вот почему я прошу команды labelFormat, но я буду признателен также намек Javascript. Я знаю, что QML QtCharts имеет QDateTimeAxis, который обеспечивает мм: сс, но я хотел бы, чтобы преобразовать данные только для визуализации, а не для других целей.
titiro89
1

голосов
1

ответ
474

Просмотры

Динамический валидатор для TextField / Change валидатора во время выполнения

У меня есть небольшая проблема / требование о валидаторы, которые я в настоящее время не в состоянии реализовать. У меня есть простой TextField (QtQuick.Control 2), который украшен различными цветами в зависимости от состояния. Он должен также использовать другой RegExpValidator (с другим регулярным выражением) в зависимости от текущего состояния. Кто-нибудь есть идея, как я могу переключить / изменить / модифицировать RegExpValidator во время выполнения? (Например, когда нажата кнопка или onEditingFinished-событие срабатывает) Мой текущий код QML является: импорт QtQuick 2,3 импорта QtQuick.Controls 2.2, как Быстрый импорт QtQuick.Layouts 1,3 RowLayout {ID: свойство макета цвет modeColor: «WhiteSmoke» свойство цвета modeTextColor : "серый" интервал: 0 Прямоугольник {ID: Rect Layout.fillWidth: истинная Layout.minimumWidth: 100 макета. // должно перейти к другому РегВыр валидатор} еще {layout.state = "keyinput" // должна перейти к другому РегВыр валидатор} input.clear ()} Keys.onPressed: {если (== event.key Qt.Key_Escape) { layout.state = "keyinput" recttext.text = "Введите ключ" input.clear ()}}} гласит: [State {название: "keyinput" PropertyChanges {цель: расположение; modeColor: "WhiteSmoke"; modeTextColor: "серый"}}, {Государство имя: "valinput" PropertyChanges {цель: расположение; modeColor: "красный"; modeTextColor: "белый" }}] Состояние: «keyinput»} С наилучшими пожеланиями, Крис редактировать: (., Где я мог бы использовать определенную RegExpValidator для конкретного ключа) endgoal является inputline для ввода пары ключ-значение При этом следует использовать RegExpValidator для ввода ключа, например, "автор:" + Нажатие Enter (keyinput-режим) # После включения в valueinput режим, он должен использовать другой RegExpValidator: кстати. Это настольное приложение :)
ruuns
1

голосов
0

ответ
176

Просмотры

не macdeployqt развертывания модулей QtQuick

Я использую macdeployqt развернуть одно приложения QML для Mac OS и когда я закончу со всеми путями тонких и попытаться выполнить его из .dmg сгенерированного пакета можно запустить приложение. Попытка выполнить его с термином я получаю ошибку QML, который говорит QtQuick.Window и другие модули не установлены. Любой ключ о? Это команда, которую я пробовал: $ macdeployqt MyApp.app -qmldir = / Users / JGD / DEV / MyApp его-полосной Я получаю эту ошибку: Log: Установка QML импортирует Log: Application QML поиск путь к файлу (s ) есть ( "/ Users / jngd / Devel / MyApp /") оШИБКА: ошибка выхода qmlimportscanner. Ожидаемый JSon массив, получил: ОШИБКА: «» QProcess: Разрушенный во время процесса ( «/Users/jngd/devel/Qt/5.10.0/clang_64/bin/qmlimportscanner») все еще работает.
jgd
1

голосов
1

ответ
176

Просмотры

Как слушать QQuickItem Childitem добавления

Я создал C ++ класс с QML придает свойства для использования его в QML. Теперь я хочу, чтобы добавить вложенное свойство к одному объекту QQuickItem и распространять это вложенное свойство для всех QQuickItem дочерних элементов (те, которые вернулись на QQuickItem :: childItems () не QObject :: детей ()). Я могу легко перебирать существующие QQuickItem дочерние элементы и добавить приложенные им свойства, однако я не могу узнать, как слушать добавлять / удалять дочерние элементы для определенных QQuickItem. Никаких сигналов, никаких событий только не перекрывая метод QQuickItem :: itemChange (). Как я могу слушать для добавления / удаления QQuickItem запись детей? Я нашел только QQuickItemChangeListener, но этот класс от частных API. UPD1: Реализация арестованного имущества: класс MyProp: общественный QObject {Q_OBJECT Q_PROPERTY (интермедиат проп ...) общественности: Явный MyProp (QObject * объект = nullptr): QObject (объект) {автоматический пункт = qobject_cast (объект); если (пункт) {для (авто ребенок: _item-> childItems ()) {QObject * прилагается = qmlAttachedPropertiesObject (ребенок, правда); ... // нужно слушать здесь для добавления / удаления дочерних элементов}}} статическая MyProp * qmlAttachedProperties (QObject * объект) {вернуть новый MyProp (объект); }} QML_DECLARE_TYPEINFO (MyProp, QML_HAS_ATTACHED_PROPERTIES) // нужно слушать здесь для добавления / удаления дочерних элементов}}} статическая MyProp * qmlAttachedProperties (QObject * объект) {вернуть новый MyProp (объект); }} QML_DECLARE_TYPEINFO (MyProp, QML_HAS_ATTACHED_PROPERTIES) // нужно слушать здесь для добавления / удаления дочерних элементов}}} статическая MyProp * qmlAttachedProperties (QObject * объект) {вернуть новый MyProp (объект); }} QML_DECLARE_TYPEINFO (MyProp, QML_HAS_ATTACHED_PROPERTIES)
Kamil Zaripov
1

голосов
0

ответ
61

Просмотры

Невозможно перевести графический интерфейс в QML

Я написал следующий код для загрузки файла .TS #include #include #include #include #include INT основной (интермедиат ARGC, символ * ARGV []) {#if определена (Q_OS_WIN) QCoreApplication :: SetAttribute (Qt :: AA_EnableHighDpiScaling); #endif QGuiApplication приложение (ARGC, ARGV); QQmlApplicationEngine двигателя; engine.load (QUrl (QStringLiteral ( "QRC: /main.qml"))); QTranslator переводчик; если (translator.load ( "/ перевод-qml_ge.qm")) {QDebug ()
Sanket Joshi
1

голосов
0

ответ
736

Просмотры

QML ListView - Limit the number of items displayed in the list

У меня есть ListView ListModel с 10 ListElements, я хочу ListView, чтобы отобразить первую ListElement от модели. Есть ли способ ограничить количество ListElement элементов, которые отображаются или выберите ListElement для отображения с идентификатором в данных? Пример ListModel: ListModel {ID: homeMenuModelData ListElement {имя: "Сэм Wise очень мудрый человек" номер: "555 0473"} ListElement {имя: "Билл Смит" номер: "555 3264"} ListElement {имя: «Джон Браун "номер: "555 8426"}} На ListView: ListView {anchors.fill: родитель интерактивными: ложная модель: HomeMenuModel делегат: homeMenuDelegate выделить: Rectangle {цвет: "lightsteelblue"; Радиус: 5} фокус: истинно} I» м думать что-то вроде этого было бы полезно для меня: model.clear (); для (вар я = 0; я <bookList.length; ++ я) {model.append (Booklist [I]); } ****** ****** Обновлено Принадлежит к @folibis (ниже комментариев) за предложение, хорошее объяснение здесь использования DelegateModel и filterOnGroup: Можно ли показывать только определенные показатели ListView QML в?
CLiown
1

голосов
0

ответ
120

Просмотры

Полноэкранное приложение QML и сенсорный экран активность фона RPI

Я работаю с QML на RPI. У меня есть проблемы с сенсорным экраном. Я использую Qt 5.9.1 и подключение RPI с VNC. Когда я отлаживать свои приложения с графическим интерфейсом, они всегда работают в полноэкранном режиме на сенсорном экране, и я не могу видеть окно приложения на VNC. Я в порядке с только работает в полноэкранном режиме и не видя на VNC, но если я прикасаюсь к экрану можно достичь за окном приложения. Я имею в виду, когда приложение активно я могу случайно открытые настольные приложения или изменить рабочий стол папку. Я не хочу, чтобы родной-строить Qt снова, потому что это занимает так много времени с RPI. Как может мой сенсорный экран работает только в окне QML? Спасибо за ответы. Вот main.cpp; # include "ae2.h" INT основных (INT ARGC, символ * ARGV []) {QGuiApplication приложение (ARGC, ARGV); QQmlApplicationEngine двигателя; engine.load (QUrl (QStringLiteral ( "QRC: /main.qml"))); если (двигатель. . RootObjects () IsEmpty ()) возвращает -1; Àe2 таймер; QQmlContext * CTX = engine.rootContext (); ctx-> setContextProperty ( "benimHaberciReferansı", и таймер); вернуть app.exec (); } Основной QML: импорт QtQuick 2.9 импорта QtQuick.Window 2.2 импорта QtQuick.Controls 1.3 импорта QtQuick.Window 2.2 импорта QtQuick.Dialogs 1.2 импорта QtQuick.Layouts 1.1 ApplicationWindow {название: qsTr ( "Тесла Модель S спидометр") ширина: 800 // 1400 высота: 480 // 600 видно: истинный цвет: "черный" LeftElement {ID: leftRect у: 50 х: 0 ширина: parent.width / 2 высота: 475} {RightElement ID: rightRect у: 50 х: 400 ширина: родитель. ширина / высота 2: 475} {QtObject свойство вар языкового стандарт: Qt.locale () Дата недвижимости CurrentDate: новая Дата () строковое свойство DateString строкового свойства TimeString Component.onCompleted: {DateString = currentDate.toLocaleDateString (); TimeString = currentDate.toLocaleTimeString (); }} Изображение {ширина: высота parent.width: parent.height источник: "/pics/Background.png"} / * Колонка {ID: ключ1 у: 100 х 700 Переключатель {проверено: истинно} Текст {текст: «Mod1 "font.pixelSize: 26 font.bold: истинный цвет: "белый"
Serkan
1

голосов
1

ответ
258

Просмотры

Как сделать QML диаскоп себя в экран

Я планирую добавить кнопку на FLOW1, которые делают колонки слайд справа налево очень быстро, так что я могу изменить некоторые параметры, а затем дать это нормально, так что скользит назад. Это вроде как, когда вы проводите слева направо на Android и он скользит колонку для вас, чтобы сделать chnges. Как вы можете видеть, я поместил колонку сразу после FLOW1. План состоит в том, чтобы добавить анимацию, которая делает оба зрителей пальцем влево, пока большая часть экрана не покрывается колонке. Это правильный способ сделать это? Я не чувствую себя комфортабельным прятать это от экрана и делая их. Возможно ли это, чтобы оживить кварты быстро позиционеры?
1

голосов
1

ответ
27

Просмотры

Создание сложного шаблона?

Я хочу, чтобы создать тип слайд-шоу, в котором пользователь может нажать кнопку ввода, чтобы получить подробную информацию этого конкретного товара, которые организованы в другой слайд-шоу. Итак, мой сырой шаблон будет выглядеть примерно следующим образом: Item {свойство строки ширина этикетки свойство строки значок: 500 Высота: 500 Текст {Текст: метка anchors.left: parent.left} Изображение {Источник: значок anchors.right: parent.right } {ContentPlaceholder anchors.horizontalCenter: parent.horizontalCenter anchors.bottom: parent.bottom AnotherContentPlaceholder {PageIndicator {подсчитывать: AnotherContentPlaceholder.children}}} {PageIndicator подсчитывать: ContentPlaceholder.children}} Тогда мой сырой объект будет что-то вроде этого: Родитель} Текст {текст: "Мой подпункт 3-B Text"}}}} Существуют сложные шаблоны, как это возможно? Как бы один идти о создании их?
brandon
1

голосов
0

ответ
367

Просмотры

QML ListModel в строку

У меня есть ListModel заполнены так: Component.onCompleted: {fillListModel (); } {ListModel ID: ListModel; } Функция fillListModel () {для (вар я = 0; я
SteveTJS
1

голосов
1

ответ
68

Просмотры

Доля C ++ экземпляры объектов с QML

У меня есть логический BUSSINES в C ++ 11 и мне нужно, чтобы разоблачить и ПОДЕЛИТЬСЯ некоторые C ++ QObjetcts с QML UI. Я использую поддельный-синглтон подход подвергать эти объекты с лямбда и статической переменной: статическая имя_класса * static_pointer = & non_singleton_QObject_instance; qmlRegisterSingletonType ( "ИмяКласс", 1, 0, "ИмяКласс", [] (QQmlEngine * двигатель, QJSEngine * ScriptEngine) -> QObject * {Q_UNUSED (двигатель) Q_UNUSED (ScriptEngine) возвращение static_pointer;}); работает нормально, но при выходе из приложения я получаю ошибки, так как объекты C ++ уничтожаются QGuiApplication перед тем QQmlApplicationEngine деструктора. Когда QQmlApplicationEngine пытается получить доступ к этим объектам поддельных одноэлементным в его деструкторе, я получаю аварию. Я могу решить это skiping QQmlApplicationEngine с выходом (0) вызов, но я
M.A. Pons
1

голосов
0

ответ
146

Просмотры

QML ItemSelectionModel не выбирает?

У меня TreeView из в QFileSystemModel и ItemSelectionModel: ItemSelectionModel {ID: Шкурки модели: fileSystemModel onSelectedIndexesChanged: {model.setSelected (selectedIndexes)}} {TreeView ID: вид anchors.fill: родитель sortIndicatorVisible: истинная модель: fileSystemModel rootIndex: выбор rootPathIndex : сель SelectionMode: 2 TableViewColumn {ID: NameColumn название: "Имя" роль: "имя_файл" изменяемая: истинная ширина: parent.width-sizeWidth-dateWidth-scrollBarWidth делегат: MYCOMP} ... другие столбцы} Когда я сортировка TreeView для имя или размер файла, выбор не обновляется. Поэтому, на мой fileSystemModel (производный от QFileSystemModel) Я создал Q_INVOKABLE функцию, которая должна сохранять выбранные показатели: Q_INVOKABLE недействительным setSelected (список QModelIndexList) {_selectedIndices.clear (); для (INT I = 0; я
maxwell
1

голосов
0

ответ
33

Просмотры

Отладка QML хранится в QRC в общей библиотеке

По архитектуре приложения у меня есть основной исполняемый файл, с загрузкой это плагины с помощью QPlugin (описано здесь). Я добавил .qrc файл, содержащий все ресурсы (изображения и т.д.) и .qml файлы каждого плагина, так что он будет построен в нем мне удалось вызвать и выполнить .qml файлы из этого плагинов. Проблема заключается в том: отладчик укомплектовать игнорировать все точки останова из QtCreator к этому .qml файлов (хотя я вижу «QML отладка включена Используйте только в безопасной среде.» В консоли вывода) Так же можно подключить QML отладчик QtCreator к. QML, который хранится в .qrc, который построен в общей библиотеке плагин?
ElDorado
1

голосов
0

ответ
86

Просмотры

Как я могу загрузить список в QML Определяет?

Вот вещь, у меня есть заголовочный файл со списком определяет, определение строковых констант. Я делаю свой интерфейс с QML. Мне было интересно, если есть способ импортировать эти Определяет, так что я могу ссылаться из QML.
aarelovich
1

голосов
0

ответ
649

Просмотры

QT5.10.1 никакого обслуживания не найдено - «org.qt-project.qt.mediaplayer» на окне

Я создаю видео на QML, импортировать QtMultimedia 5,8 играть video.It может играть хорошо, но когда я импортировать некоторые библиотеки Qt3D в этом файле QML, это ошибка. «Ошибка Система не может найти указанный файл.» defaultServiceProvider :: requestService (): нет службы не найдено - "org.qt-project.qt.mediaplayer" Это произошло только в режиме отладки режима OS Window7 Release в OS Window7 порядке. Я стараюсь его на Ubuntu с библиотекой GStreamer, он может играть хорошо на обоих Debug и Release. Я Гг некоторые статьи сказали, что это из-за медиа-плагина. От mingw53_32 / плагинов / MediaService, есть 4 файла dsengine.dll / dsengined.dll и qtmedia_audioengine.dll / qtmedia_audioengined.dll. Является ли это ошибка с QT? --- EDIT ------ я мой проект, я использую MediaPlayer некоторые элементы Scene3D. Он может хорошо играть в режиме Release, но не в режиме отладки. QT + = быстрое 3dcore 3drender 3dinput 3dquick 3dextras 3dquickextras мультимедиа CONFIG + = C ++ 11 --- ОБНОВЛЕНО ----- Я обнаружил, что это произошло, когда я строю с MinGW компилятором. Когда я изменяю MSVC2015 компилятором, он может играть хорошо. Может быть, есть что-то другое в библиотеках этого компилятора?
KidNg
1

голосов
0

ответ
48

Просмотры

QQuickPaintedItem в Flickable становится расплывчатым, когда contentwidth большой

У меня есть класс, который наследует QQuickPaintedItem, с которым я переопределять краску (), чтобы нарисовать аудио сигнала. После того, как рисунок будет сделано изменить размер contentWidth из Flickable, содержащий QML элемент я создаю с qmlRegisterType. Чем больше contentWidth размытого содержание получает. Я никогда не рисовать в зависимости от contentWidth либо и краски () не вызывается при изменении contentWidth и эффект тот же, когда contentWidth является hardcodded в файле QML. Я не очень опытный с Qt и мне было интересно, если это лучший подход, чтобы начать с рисования большого сигнала, что я могу пролистать, увеличить масштаб и взаимодействовать и почему содержание Flickable получить размыта при увеличении contentWidth. Я пробовал все очевидные вещи, такие как установку рендеринг намека на сглаживание и т.д.
ALDSMQJF
1

голосов
0

ответ
107

Просмотры

Как держать мышь в углах, когда растяните прямоугольник?

Я ищу способ, чтобы решить эту проблему. У меня был прямоугольник, и я могу перетащить на 4 углах для масштабирования. Но когда я перетащить прямоугольник, мой значок мыши не остался в углу, и я хочу остаться в углу, когда я тащу, как это. Это мой IMG URL Это мой код блока. импорт QtQuick 2.4 импорт QtQuick.Controls 1.3 импорта QtQuick.Window 2.2 Окна {название: qsTr ( "Тест зерно") Ширина: 640 Высота: 480 виден: истинная собственность выбор вара: не определенно свойство INT rulersSize: 18 свойства двойного newheight: recframe.height свойство двойной newwidth: recframe.width свойство двойной oldwidth: recframe.width свойство двойной oldheight: recframe.height прямоугольник {х: parent.width / 4 у: parent.height / 4 ширина: parent.width / 2 высота: parent.width / 2 ID: recframe границы {ширина: 2 Цвет: "SteelBlue"} цвет: "# 354682B4" // ЗАП уголок в верхнем левом Rectangle {ширина: 18 высота: 18 Цвет: "SteelBlue" anchors.verticalCenter: parent.top anchors.horizontalCenter: родитель .left MouseArea {anchors.fill: родитель перетащить {цель: родитель; Ось: Drag.XAxis} onMouseXChanged: {если (drag.active) {newheight = newheight-мышиный вар с = recframe.scale / oldheight * newheight recframe.scale = с = newwidth oldwidth * newheight / oldheight recframe.
Nguyen An
1

голосов
1

ответ
105

Просмотры

Qt.createComponent () с существующим типом импортного

Я пытаюсь создать компонент существующего импортного типа. Хотя эта задача кажется достаточно важной (скажем, при создании компонентов видов, найденных в ваших собственных установленных плагинов QML) это, кажется, не быть документированы. Например, при попытке создать компонент MyObject, обходной путь, чтобы создать файл MyObjectComponent.qml в приложении следующим образом: импорт MyPackage 1.0 MyObject {} Тогда компонент из этого объекта может быть создан с Qt.createComponent ( "MyObjectComponent .qml "), но этот метод кажется излишним. Есть ли более краткий путь? Я ожидал бы Qt.createComponent ( «MyObject») для работы, но это не так.
Ayberk Özgür
1

голосов
0

ответ
86

Просмотры

QML ящик не работает корректно на смартфоне

Был такой странное поведение Ящика. На рабочем столе, а также на эмуляторе, он работает правильно. Однако на моем смартфоне не работает правильно. Неверность выглядит следующим образом: Если вы перетащите общедоступна, то нажмите кнопку Выдвижные закрывается, последующее нажатие кнопки не открыть ящик. Work.qml импортировать QtQuick 2.4 импорт QtQuick.Controls 2.0 WorkForm {свойство BOOL isOpened: ложные {onClicked кнопку MENU: {console.log ( "isOpened:" + isOpened); console.log ( "drawer.opened:" + drawer.opened); если (isOpened) {console.log ( "ящик близко ()"); drawer.close (); } Еще {console.log ( "ящик открыт ()"); drawer.open (); }}} HeaderSize: 48 ящик {ID: ящик dragMargin: ширина HeaderSize:: 60 лет 0,4 * parent.width высоты: parent.height - HeaderSize клип: истинный Ярлык {текст: "Содержание здесь идет!" anchors.centerIn: родитель} onOpened: {console.log ( "ящик onOpened"); isOpened = TRUE; } OnClosed: {console.log ( "ящик OnClosed"); isOpened = ложь; }}} WorkForm.ui.qml импорт QtQuick 2,4 импорта QtQuick.Controls 2.0 Пункта {ID: uiWelcomeForm anchors.fill: Родитель свойства цвета headerColor: "# d73c3c" свойство ИНТ HeaderSize: псевдоним 48 свойства кнопка MENU: Rectangle {кнопки MENU ID: menuRect высоты :
Roman Ozhegov
1

голосов
1

ответ
45

Просмотры

вопросы загрузки QtQuick StackView

Я работаю через книгу «Learn Qt 5» от Николая шерифа. Теперь у меня есть некоторые проблемы, получая компонент QtStackView работать должным образом. Я написал следующий код: main.cpp #include #include #include INT основной (интермедиат ARGC, символ * ARGV []) {QGuiApplication приложение (ARGC, ARGV); QQmlApplicationEngine двигателя; engine.load (QUrl (QStringLiteral ( "QRC: /views/MasterView.qml"))); вернуть app.exec (); } MasterView.qml импорт QtQuick 2.5 импорта QtQuick.Window 2.0 импорта QtQuick.Controls 1.4 Окна {видимая: истинная ширина: 1024 высота: 768 название: qsTr ( "Управление Клиента") StackView {ID: contentFrame initialItem: Qt.resolvedUrl ( "QRC : /views/SplashView.qml ")}} SplashView.qml импортировать QtQuick 2.5 Прямоугольник {anchors.fill: родитель цвет:"
Matthias Waelti
4

голосов
0

ответ
379

Просмотры

QT/QML Android App, open app when click notification bar

Я делаю QT для Android приложений. При нажатии кнопки уведомит бар видели выше в таблетках. Но если нажмите уведомит, мои приложения открыть / фокус (ноу-ДОН») с черным окном. Как это сделать просто. Мой код: пакет org.ays.operation; импорт android.app.Notification; импорт android.app.NotificationManager; импорт android.content.Context; импорт android.app.PendingIntent; импорт android.content.Intent; общественный класс NotificationClient расширяет org.qtproject.qt5.android.bindings.QtActivity {частный статический NotificationManager m_notificationManager; частные статические Notification.Builder m_builder; частные статические NotificationClient m_instance; частные статические PendingIntent contentIntent; частное статическое Намерение намерение; общественного NotificationClient () {m_instance = это; } Государственной статической силы notify2 () {Намерение = новый Намерение (m_instance, NotificationClient.class); contentIntent = PendingIntent.getActivity (m_instance, 0, намерение, PendingIntent.FLAG_UPDATE_CURRENT); если (m_notificationManager == NULL) {m_notificationManager = (NotificationManager) m_instance.getSystemService (Context.NOTIFICATION_SERVICE); m_builder = новый Notification.Builder (m_instance); m_builder.setSmallIcon (R.drawable.icon); m_builder.setContentTitle ( "Сообщение от Qt!"); m_builder.setDefaults (Notification.DEFAULT_SOUND); m_builder.setContentIntent (contentIntent); m_builder.setAutoCancel (истина); } M_builder.setContentText ( "Bla Bla"); m_notificationManager.notify (1, m_builder.build ()); }} Я гость, важный код PendingIntent, чтобы открыть / сосредоточиться основное приложение. Другое дело, что я не хочу использовать notify2 как статические. Могу ли я использовать его динамический из Qt / JNI
Kevin yudo
1

голосов
0

ответ
130

Просмотры

QML Fontloader использовать шрифты Google

Я пытаюсь использовать QML FontLoader для загрузки шрифтов Гул в приложении QML: FontLoader {ID: источник WebFont: «https://github.com/google/fonts/raw/master/apache/cousine/Cousine-Regular.ttf»} Я получаю следующее сообщение об ошибке: QML FontLoader: Невозможно загрузить шрифт: «https://github.com/google/fonts/raw/master/apache/cousine/Cousine-Regular.ttf» Когда я использовать исходный шрифт URL в браузере, то шрифт загрузки успешно, который подписывает ссылку правильно. Интересно, что я скачать шрифт вручную, добавьте в качестве ресурса для проекта Qt, и использовать его в FontLoader, он работает правильно ..! любой ключ?
Mohammad Kanan
1

голосов
1

ответ
94

Просмотры

Qt ColumnLayout full screen

Qt: 5.11.1 OS: Windows 10 64bit This is Qt Quick application. when the window is in full screen mode. The layout becomes strange. I think it's an afterimage of the previous size. startup full screen import QtQuick 2.9 import QtQuick.Window 2.2 import QtQuick.Layouts 1.3 Window { visible: true width: 640 height: 480 title: qsTr("Hello World") ColumnLayout{ spacing: 2 anchors.fill: parent Rectangle { Layout.alignment: Qt.AlignCenter color: "red" Layout.preferredWidth: 40 Layout.preferredHeight: 40 } Rectangle { Layout.alignment: Qt.AlignRight color: "green" Layout.preferredWidth: 40 Layout.preferredHeight: 70 } Rectangle { Layout.alignment: Qt.AlignBottom Layout.fillHeight: true color: "blue" Layout.preferredWidth: 70 Layout.preferredHeight: 40 } Rectangle { Layout.alignment: Qt.AlignBottom Layout.fillHeight: true color: "orange" Layout.preferredWidth: 70 Layout.preferredHeight: 40 } } }
B.Yong
1

голосов
0

ответ
44

Просмотры

How auto-completation works for custom C++ object created in QML Javascript?

I have tried a lot of ways to get code completer suggestions. If my QML codes are: var a = CustomClass; a.value = 45; // code completer work but qml error TypeError: Type Error I use this function: var a = CustomClass.newCustomClass(); a.value = 45; // this success with no error but "value" member I typed manually. This causes a big problem if CustomClass have many members or attributes. I must look at the class defination and declaration per class object's members typing, if I can not remember, and so my work is slowed down. C++: class CustomClass : public QObject { Q_OBJECT Q_PROPERTY( QString value READ value WRITE setValue ) public: CustomClass(){} Q_INVOKABLE static QVariant* newCustomClass(){ return QVariant::fromValue(new CustomClass());} QString value() const { return mValue; } void setValue(const QString& value){ this->mValue = value;} private: QString mValue; } QML code: import com.customType 1.0 Component.onCompleted: { var size = Qt.size( 1 , 2 ); size.width = 5; //-> code completer work if typed (ctrl+space). ctrl+space offer me two variable width ve height var element = CustomClass.newCustomClass(); element.value = 77; // code completer does not work. Main function: qmlRegisterType("customclass", 1, 0, "CustomClass");
CMLDMR
1

голосов
0

ответ
114

Просмотры

Виртуальная клавиатура нажмите клавишу QML

Я был в состоянии показать виртуальную клавиатуру, используя код, приведенный ниже. импорта QtQuick.VirtualKeyboard 2.0 Окна {видимая: истинная ширина: 640 высота: 480 названия: qsTr ( "Привет KeyBoard") InputPanel {ID: inputPanel г: 89 г: 0 anchors.left: parent.left anchors.right: parent.right }} Как можно получить спрессованные «ключи» от InputPanel.I не нужно отобразить ключи в TextField.
prasanth
1

голосов
0

ответ
92

Просмотры

Qt: Использование «setContextProperty» с «QObject» и «JavaScriptOwnership» вызывает пункт, который будет собираться / удален

Я интегрируя QML и .NET. (Ссылка проекта) При отправке объектов .NET в QML, я оберните его NetValue: тип общественного QObject C ++. Тип NetValue хранит сильную ссылку на базовый объект .NET, чтобы предотвратить .NET GC в то время как активность в QML. Я использую QQmlEngine :: setObjectOwnership (netValue, QQmlEngine :: JavaScriptOwnership); так что QML удалит NetValue, когда это будет сделано с ним. Затем я использую NetValue :: ~ NetValue (), чтобы сообщить .NET выпустить сильную ссылку. Это хорошо работает для меня до сих пор, но я бегу на вопрос. Рассмотрим следующее. QObject * TestObject = новый TestObject (); QQmlEngine :: setObjectOwnership (TestObject, QQmlEngine :: JavaScriptOwnership); engine.rootContext () -> setContextProperty ( "TestObject", TestObject); В определенный момент, мой TestObject будет уничтожен. Я ожидал бы setContextProperty провести сильную ссылку на тип QObject, препятствуя его GC'd в QML. Использование QQmlEngine :: CppOwnership устраняет проблему, но, как я уже объяснял ранее, мне нужно использовать QQmlEngine :: JavaScriptOwnership отслеживать срок службы оберточного типа QML, который содержит ссылку на объект .NET. Почему setContextProperty не сохраняет сильную ссылку (увеличить количество реф, или что-то) к моему QObject, что я передаю его?
Paul Knopf
1

голосов
1

ответ
152

Просмотры

QML WebEngineView и DOM обновление элементов

Я пытаюсь открыть Netflix URL с обновленными ввода учетных данных с помощью JavaScript. Вход, как представляется, обновляется в HTML-форме, но когда я вызвать знак в кнопке Поле ввода пустеет. Любой ввод наиболее цениться WebEngineView {ID: webEngineView фокус: истинный URL: "https://www.netflix.com/de-en/login" onLoadProgressChanged: {если (loadProgress === 100) {webEngineView.runJavaScript ( "вар input1 = document.getElementsByName ( 'электронная почта'); input1 [0] .value = \ "[email protected] \";», функция (результат) {console.error ( "Электронная почта обновляется");}); webEngineView.runJavaScript ( "вар input2 = document.getElementsByName ( 'пароль');
Keen Learner
1

голосов
0

ответ
30

Просмотры

как разделить ItemSelectionModel между двумя ListViews

В QML файл, есть два ListViews, левый ListView отображает все данные QAbstractListModel с флажком, право ListView отображает все выбранные из левой ListView.how, чтобы использовать ItemSelectionModel для обмена выбора между двумя ListViews? Там нет образца кода в QT инструкции о том, как использовать ItemSelectionModel.
toushi
1

голосов
0

ответ
87

Просмотры

Предоставление QML константный указатель на константный объект, а не неконстантного объекта?

У меня есть проект с использованием QML, в котором QML имеет имеет объект типа Foo. Я хочу изменить его так, что QML есть объект типа сопзЬ Foo. Как мне это сделать? У меня есть QML вызов функции C ++, который работал и сделал Foo *. Я изменил его взять константный Foo * (как это логически следует), но я получаю сообщение об ошибке выполнения на линии QML, который называет его, говоря: «Ошибка: Неизвестный тип параметра метода: Const Foo *». Я попытался изменить qmlRegisterType ( "FooLib", 1, 0, "Foo"); чтобы qmlRegisterType ( "FooLib", 1, 0, "Foo"); но безрезультатно. Затем я попытался сделать qmlRegisterUncreatableType ( "FooLib", 1, 0, "Foo", "Невозможно создать один"); и заменить мой QML FooLib.Foo {} с вызовом к заводским способом я создал, который возвращает Foo *. То же ошибка времени выполнения. Я попытался сделать мой завод вернуть константный Foo *. Это прогресс. Это делает его не врезаться. Тем не менее, я получаю сообщение об ошибке выполнения в QML как «TypeError: Не удается прочитать свойство„бар“неопределенных», где он пытается получить доступ к Q_PROPERTY из Foo. В отеле есть только READ и эта функция член Уст. Ошибка о неопределенном заставляет меня думать, что, может быть, QML не знает, что константный Foo является таким же, как Foo, когда речь идет о константных Q_PROPERTYs, или что он получает Foo * s от других функций и не знает, что те может быть преобразованы на константные Foo * s. Это правильно? Является QML не может автоматически конвертировать Foo * на константные Foo *? Как я должен написать константный-правильный код? S пытается получить доступ к Q_PROPERTY из Foo. В отеле есть только READ и эта функция член Уст. Ошибка о неопределенном заставляет меня думать, что, может быть, QML не знает, что константный Foo является таким же, как Foo, когда речь идет о константных Q_PROPERTYs, или что он получает Foo * s от других функций и не знает, что те может быть преобразованы на константные Foo * s. Это правильно? Является QML не может автоматически конвертировать Foo * на константные Foo *? Как я должен написать константный-правильный код? S пытается получить доступ к Q_PROPERTY из Foo. В отеле есть только READ и эта функция член Уст. Ошибка о неопределенном заставляет меня думать, что, может быть, QML не знает, что константный Foo является таким же, как Foo, когда речь идет о константных Q_PROPERTYs, или что он получает Foo * s от других функций и не знает, что те может быть преобразованы на константные Foo * s. Это правильно? Является QML не может автоматически конвертировать Foo * на константные Foo *? Как я должен написать константный-правильный код? Это правильно? Является QML не может автоматически конвертировать Foo * на константные Foo *? Как я должен написать константный-правильный код? Это правильно? Является QML не может автоматически конвертировать Foo * на константные Foo *? Как я должен написать константный-правильный код?
Ben
1

голосов
0

ответ
597

Просмотры

Модуль QML не найден

Я скопировал проект в другой каталог (раздвоенного его), и теперь я всегда получаю модуль QML не найдено (QtQuick.Controls). И тому подобные. Первоначальный проект не показывает каких-либо ошибок. Я очистил и восстановил все, но это не решить. Проект компилируется и работает отлично, так QtCreator как-то обмануть, что есть какая-то проблема. Что может быть причиной этого? Я использую Qt 5.11, QtCreator 4.7.1 прилагается изображение файл проект: QT + = быстрая сеть QT + = quickcontrols2 QT + = виджеты CONFIG + = C ++ 11 # Следующие определения делает компилятор испускать предупреждения, если вы используете # любые особенность Qt, которые, как было отмечены устаревшими (точные предупреждения # зависят от компилятора). Пожалуйста, обратитесь к документации по # осуждается API для того, чтобы знать, как порт код от него. ОПРЕДЕЛЯЕТ + = QT_DEPRECATED_WARNINGS # Вы также можете сделать свой код не компилируется, если вы используете устаревший API. # Для того, чтобы сделать это, раскомментируйте следующую строку. # Вы также можете выбрать, чтобы отключить устаревший API, только до определенной версии Qt. #Defines + = QT_DISABLE_DEPRECATED_BEFORE = 0x060000 # отключает все интерфейсы устаревшее, прежде чем Qt 6.0.0 ИСТОЧНИКОВ + = \ blockchainaccount.cpp \ blockies.cpp \ error.cpp \ ethkey.cpp \ hqx.cpp \ hqx2.cpp \ hqx3.cpp \ hqx4.cpp \ identicon.cpp \ walletaccount.cpp \ main.cpp \ aewm.cpp \ acctlist.cpp \ block.cpp \ blocklist.cpp \ txlist.cpp \ vtlist.cpp \ transaction.cpp \ valuetransfer.cpp \ acctcatlist. CPP \ ftokens.cpp \ token.cpp \ txparam.cpp \ ftokops.cpp \ nftokens.cpp \ simres.cpp \ ftapprovals. CPP \ ftholders.cpp \ mainstats.cpp \ prefs.cpp \ blockheader.cpp \ addresslist.cpp \ acctcat.cpp \ balance.cpp \ big.cpp \ tokop.cpp \ ftholder.cpp \ ftapproval.cpp \ utils.cpp РЕСУРСЫ + = qml.qrc # Дополнительный путь импорта используется для разрешения модулей QML в код модели QML_IMPORT_PATH Qt Творца = # Дополнительный путь импорта используется для разрешения QML модули только для Qt Quick Designer QML_DESIGNER_IMPORT_PATH = правила # по умолчанию для развертывания. QNX: target.path = / TMP / $$ {TARGET} / bin еще: UNIX:! андроида: target.path = / Opt / $$ {TARGET} / bin IsEmpty (target.path): INSTALLS + = целевые DISTFILES + = HEADERS + = \ blockchainaccount.h \ blockies.h \ error.h \ ethkey.h \ hqx.h \ hqx2.h \ hqx3.h \ hqx4.h \ identicon.h \ walletaccount.h \ aewm.h \ acctlist.h \ блок.
Nulik
1

голосов
1

ответ
139

Просмотры

How to get the list of QML Column Layout children?

I am working on some QML + c++ project and, I have a little problem with QML layouts: I have two custom components : First one: is a side-bar "SideTabBar.qml" (the purple rectangle in the image below). Second one: is the element in the side-bar "SideBarElement.qml". This image describes what I am talking about: What I want is: highlight each side bar element on click. To do so I am trying to iterate over the columnLayout children and lowlight them excepting the clicked one. But, I have not managed to make it works. SideTabBar.qml: Item { id: sideTabBar width: 70 height: parent.height property string activeElement: "" ColumnLayout{ id:sidebarLayout anchors.fill: parent spacing:2 SideBarElement{elementId:"a1";image:"../assets/product.svg"} SideBarElement{elementId:"a2";image:"../assets/product.svg"} Item {Layout.fillHeight: true} } } SideBarElement.qml: Item { property alias image: sideBarElementicon.source property string elementId: "" id: sideBarElement width:parent.width Layout.preferredHeight: 70 Layout.alignment: Qt.AlignTop Rectangle{ anchors.fill: parent color:Qt.rgba(0,0,0,0) } Image { id: sideBarElementicon source: "genericIcon.png" anchors.horizontalCenter: parent.horizontalCenter anchors.verticalCenter: parent.verticalCenter width: 50 height: 50 } MouseArea{ anchors.fill: parent onClicked:{ sideTabBar.activeElement = elementId // compiler does not even enter this loop. // for(var child in Layout.children){ // console.log("this is a child") // } } } }
Sameer N Ahmad
1

голосов
1

ответ
49

Просмотры

Отправка списка яваскрипта объектов из QML в C ++

У меня есть C Функция invokable ++, что я называю из файла QML. Я хотел бы эту функцию, чтобы принять список яваскрипта объектов (или карты) в качестве аргумента. Документация Qt указывает на то, что JavaScript списки преобразуются в QVariantList и JavaScript объекты в QVariantMap. (См здесь, последний абзац раздела). Аналогичным образом, если тип C ++ использует тип QVariantList или QVariantMap для параметра типа свойства или методы, то значение может быть создано в виде массива JavaScript или объект в QML, и автоматически преобразуется в QVariantList или QVariantMap, когда он передается на C ++. К сожалению, когда аргумент набирается как QVariantList, QList или даже QVariant (затем переведен в QList) длина возвращается 0. Я также попытался иметь его напечатал как QList и длина списка может быть прочитан, но я могу ' т получить доступ к данным внутри как QObject * не может быть приведен к QVariant. QML фрагмент кода: для (currentLabel = 0; currentLabel
SThor
1

голосов
1

ответ
104

Просмотры

GeocodeModel в Qt

Я пишу маленькое приложение с использованием Qt / QML, и у меня есть проблемы с GeocodeModel в моем приложении. Я не знаю, почему он не работает. Я сделал это с YT учебник, но человеком он работает. импорта QtQuick 2.9 импорта QtQuick.Controls 2.2 импорта QtQuick.Window 2.0 импорта QtLocation 5.6 импорта QtPositioning 5.6 ApplicationWindow {ID: app_window видна: истинная ширина: 1024 высота: 800 название: qsTr ( "навигации") PositionSource {активна: истинно onPositionChanged: {map_id .center = position.coordinate; }} {Прямоугольник ID: mapRectangleID ширина: 1024 высота: 800 anchors.horizontalCenter: parent.horizontalCenter anchors.verticalCenter: parent.verticalCenter Карта {ID: map_id anchors.fill: {RouteQuery.addWaypoint (QtPositioning.coordinate (51.318784,12.2773504)); routeQuery.addWaypoint (QtPositioning.coordinate (51.3117764,12.280909000000065)); //routeQuery.addWaypoint(endPointGeaocodeModel) обновление (); }} // начальную и конечную точки MapItemView {модель: routeBetweenPoints делегат: Компонент {{MapRoute маршрут: routeData line.color: "красный" line.width: 10}}} // Linie, умирают Beide Punkte verbindet GeocodeModel {ID: endPointGeaocodeModel плагин: плагин {имя: «ОСМ»} запрос: "Sandakerveien 116, Осло" onLocationsChanged: {если (количество) endPointImage.coordinate = Get (0) .coordinate; } Component.onCompleted: обновление ()} // Suche ден Platz мит Strasse унд Stadt Rectangle {ID: ширина _ifStartPointLongitude: 100 Высота: 20 border.color: 'серый' border.width: 2 х: 900 г: 120 anchors.left : app_window.right TextInput {ID: txtPlainStartPointLongitude anchors.fill: родитель anchors.margins: 4}}} // все виджеты и элементы карты} // размер и положение карты} и этот элемент не работают: GeocodeModel {ID: endPointGeaocodeModel плагина: Плагин {имя: «ОСМ»} запрос: «Sandakerveien 116, Осло»onLocationsChanged: {если (количество) endPointImage.coordinate = Get (0) .coordinate; } Component.onCompleted: обновление ()} // сучьего ден плац мит штрассу унд Stadt Я попытался тоже иногородние, улицы, но он по-прежнему не работает. Может кто-нибудь объяснить мне, что я сделал / написал неправильно? } Component.onCompleted: обновление ()} // сучьего ден плац мит штрассу унд Stadt Я попытался тоже иногородние, улицы, но он по-прежнему не работает. Может кто-нибудь объяснить мне, что я сделал / написал неправильно? } Component.onCompleted: обновление ()} // сучьего ден плац мит штрассу унд Stadt Я попытался тоже иногородние, улицы, но он по-прежнему не работает. Может кто-нибудь объяснить мне, что я сделал / написал неправильно?
DragonCoder
1

голосов
0

ответ
53

Просмотры

Qt QML fails to render text correctly on some systems

Я до сих пор видел этот вопрос на Win 7 PC, не уверен, если это будет происходить на всех Win 7 ПК? Как вы можете видеть, текст «Личная информация» определяется в верхней внутри текста QML {..} коробка неправильно оказанные: я понял, что текст под заголовком работает нормально, это определяется как Ярлык {... }, поэтому я заменил объект Text с объектом Лейбл перекомпилированного и побежал на целевой машине и теперь он работает - код скомпилирован с Qt 5.10.1 MinGW 32bit. Файл QML довольно долго, рассматриваема область выглядит следующим образом: Rectangle {ID: titleNameContainer цвет: "прозрачная" anchors.top: ширина parent.top: parent.width высота: 40 anchors.horizontalCenter: parent.horizontalCenter CenturyGothicFont {идентификатор : nameStrFont} Ярлык {ID: NameStr текст: "Личная информация" ширина: родитель. Ширина // Цвет: "черный" HorizontalAlignment: Text.AlignHCenter шрифт {семья: nameStrFont.name pixelSize: 30}}} В 'метка' был 'текст' объект. Сам текст импортируемого шрифт типа .ttf, этот шрифт явно работает, когда используется в качестве метки. Я не сделал каких-либо изменений в настройках анти наложения спектров, как заданные в комментариях (я бы смотреть это, если я хотел / необходимости). Может кто-нибудь объяснить, что здесь происходит? Я не сделал каких-либо изменений в настройках анти наложения спектров, как заданные в комментариях (я бы смотреть это, если я хотел / необходимости). Может кто-нибудь объяснить, что здесь происходит? Я не сделал каких-либо изменений в настройках анти наложения спектров, как заданные в комментариях (я бы смотреть это, если я хотел / необходимости). Может кто-нибудь объяснить, что здесь происходит?
mx5_craig
1

голосов
0

ответ
45

Просмотры

как передать аргументы в QAndroidjniobject?

Я пытаюсь добавить андроид код кварт проекта. это мой .java код общественного класса WifiReceiver расширяет BroadcastReceiver {статической строки SSID; @Override общественности недействительным OnReceive (контекст контекста, Намерение намерения) {NetworkInfo информация = intent.getParcelableExtra (WifiManager.EXTRA_NETWORK_INFO); если (информация! = NULL && info.isConnected ()) {// Выполняет работу. // например, чтобы проверить имя сети или другая информация: WifiManager wifiManager = (WifiManager) context.getSystemService (Context.WIFI_SERVICE); WifiInfo wifiInfo = wifiManager.getConnectionInfo (); = wifiInfo.getSSID SSID (); получить данные(); }} Общественности статической строки GetInfo () {возвращение SSID; }} Мой каст код недействительна WIFICLASS :: updateAndroidNotification () {QDebug ()
Ash
1

голосов
1

ответ
53

Просмотры

Back and forth between QML Canvas and C++

Я пытаюсь реализовать инструмент «заливка ведра» для QML Canvas, используя алгоритм заливки. Моя первоначальная реализация в чистом QML / Javascript работает хорошо, но это (ожидаемо) медленно, и в основном непригодный для использования на мобильных устройствах. Я хотел бы вместо того, чтобы реализовать его в C ++. К сожалению, разделяя содержание холста QML с C ++ не просто / не поддерживается / не документирована. Мой текущий подход запутанный, и, конечно, не эффективен: я первым сериализовать содержимое холста с помощью canvas.dataToUrl ( «изображения / ВМР»), я прохожу в формат base64 изображения в плагин C ++ QML, который выполняет заливку: ничтожная заливка :: setImageData (Const QString & данных) {QByteArray base64Data = data.mid (22) .toUtf8 (); QImage изображения; image.loadFromData (QByteArray :: fromBase64 (base64Data), "BMP"); заполнения (изображение); испускают onCanvasFilled (); } Затем, на следующем QML холст перекрашивать, получить доступ к C ++ QImage путем повторного кодирования его в base64 на стороне C ++, а затем, используя строку base64 в качестве источника изображения в QML. В итоге: холст -> кодирование base64 через toUrlData -> C ++ -> декодирует в QImage -> заливка -> перекодировать в base64 строку -> расшифровывает, как QML изображение -> раскрасит изображение QML над холстом. Это явно крайне неэффективно. В идеале, я хотел бы получить доступ к адресу памяти холста CanvasImageData из C ++ непосредственно редактировать пикселы, без какой-либо копии. Следующий лучший вариант был бы скопировать оба пути CanvasImageData (но тип C ++ для CanvasImageData, к сожалению, частные). Любые другие предложения? (Я хочу добавить, что я смотрел, а на границе раздела QImageProvider, но я не понимаю, как я могу заставить его работать в этой ситуации,
skadge
1

голосов
2

ответ
67

Просмотры

Выбор / Saving группа календарных дат в QML

Я использую Firebase в реальном времени базы данных для хранения своих данных пользователя. Записи базы данных создаются путем сохранения даты из calendar.selectedDate. Моя проблема заключается в каждый раз, когда пользователь должен выбрать дату и нажмите кнопку Сохранить, которая не очень жидко. Мне интересно, если это возможно, чтобы выбрать / выделить несколько дат сразу затем партия сохранить или использовать Datepicker для диапазона? Мой календарь основан от QtQuick управления 1 Календарь связан ниже, http://doc.qt.io/qt-5/qtquickcontrols1-calendar-example.html Я искал вокруг некоторых и не похоже, чтобы быть уроженцем Datepicker и я задаюсь вопросом, будет ли обходной путь для многократного изюминкой дат клеток, я также хотел бы видеть визуальный след выбранных дат?
Ldweller
1

голосов
1

ответ
53

Просмотры

То, что происходит то время как PySide2 нагрузку и создать компонент?

Этот пример работает: от PySide2.QtCore импорта QUrl из PySide2.QtGui импорта QGuiApplication из PySide2.QtQml импорта QQmlComponent из PySide2.QtQuick импорта QQuickView приложение = QGuiApplication () вид = QQuickView () двигатель = view.engine () URL = QUrl ( "main.qml") view.setSource (URL) компонент = QQmlComponent (двигатель, QUrl.fromLocalFile ( "block.qml")) пункт = component.create () item.setParent (view.rootObject ()) item.setParentItem ( view.rootObject ()) view.show () app.exec_ () деталь класс QQuickItem. Component.create () является классом QQuickItem. После того, как изменение этот пример: от PySide2.QtCore импорта QUrl из PySide2.QtGui импорта QGuiApplication из PySide2.QtQml импорта QQmlComponent из PySide2.QtQuick импорта QQuickView приложение = QGuiApplication () вид = QQuickView () двигатель = view.engine () URL = QUrl ("главный. rootObject ()) item.setParentItem (view.rootObject ()) view.show () app.exec_ () Это бросить исключение: Traceback (самый последний вызов последнего): Файл «/ главная / babywolf / DEV / приложения / QtTest / test.py», строка 14, в item.setParent (view.rootObject ()) RuntimeError: Внутренний C ++ объект (PySide2.QtQuick.QQuickItem) уже удалены. Процесс закончил с кодом выхода 1 Что случилось? main.qml: импорт QtQuick 2,0 Rectangle {ширина: 200 высота: 200 Цвет: "зеленый"} block.qml: импорт QtQuick 2,0 Текст {текст: "Hello World" anchors.centerIn: родитель} rootObject ()) item.setParentItem (view.rootObject ()) view.show () app.exec_ () Это бросить исключение: Traceback (самый последний вызов последнего): Файл «/ главная / babywolf / DEV / приложения / QtTest / test.py», строка 14, в item.setParent (view.rootObject ()) RuntimeError: Внутренний C ++ объект (PySide2.QtQuick.QQuickItem) уже удалены. Процесс закончил с кодом выхода 1 Что случилось? main.qml: импорт QtQuick 2,0 Rectangle {ширина: 200 высота: 200 Цвет: "зеленый"} block.qml: импорт QtQuick 2,0 Текст {текст: "Hello World" anchors.centerIn: родитель} Internal C ++ объект (PySide2.QtQuick.QQuickItem) уже удалены. Процесс закончил с кодом выхода 1 Что случилось? main.qml: импорт QtQuick 2,0 Rectangle {ширина: 200 высота: 200 Цвет: "зеленый"} block.qml: импорт QtQuick 2,0 Текст {текст: "Hello World" anchors.centerIn: родитель} Internal C ++ объект (PySide2.QtQuick.QQuickItem) уже удалены. Процесс закончил с кодом выхода 1 Что случилось? main.qml: импорт QtQuick 2,0 Rectangle {ширина: 200 высота: 200 Цвет: "зеленый"} block.qml: импорт QtQuick 2,0 Текст {текст: "Hello World" anchors.centerIn: родитель}
BabyWolf

Просмотр дополнительных вопросов