Как QVariant(QVariantMap) в QJSValue сконвертировать?
Доброго времени суток. Как QVariant(QVariantMap) в QJSValue сконвертировать? (метод open)
import json from PyQt5.QtCore import QObject, pyqtSlot, QVariant from PyQt5.QtQml import QJSValue JS_FALSE_CONST = QJSValue(False) JS_TRUE_CONST = QJSValue(True) class QJSONFile(QObject): def __init__(self, parent=None): super().__init__(parent) pass @pyqtSlot("QString", "QJSValue") def open(self, fileUrl, callback): try: f = open(fileUrl, "r") json_string = f.read() f.close() print(json_string) json_dict = json.loads(json_string) print(json_dict) js_val = QVariant(json_dict) print(js_val) callback.call([JS_TRUE_CONST, json_dict]) except Exception: callback.call([JS_FALSE_CONST, QJSValue("")]) pass @pyqtSlot("QString", "QVariant", "QJSValue") def save(self, fileUrl, d, callback): try: json_dict = d.toVariant() json_string = json.dumps(json_dict, separators=(',', ':')) f = open(fileUrl, "w") f.write(json_string) f.close() callback.call([JS_TRUE_CONST]) except Exception: callback.call([JS_FALSE_CONST]) pass pass
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.Вам это нравится? Поделитесь в социальных сетях!
Комментарии
Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
Пожалуйста, авторизуйтесь или зарегистрируйтесь
B
- Bogdannn
- 28 марта 2024 г. 2:15
C++ - Тест 001. Первая программа и типы данных
- Результат:46баллов,
- Очки рейтинга-6
Последние комментарии
Qt Linux - Урок 001. Автозапуск Qt приложения под Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
АК
Qt WinAPI - Урок 007. Работаем с ICMP Ping в Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
Анатолий Кононенко5 февраля 2024 г. 9:50
EVA25 декабря 2023 г. 18:30
Boost - статическая линковка в CMake проекте под Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
Qt/C++ - Урок 056. Подключение библиотеки Boost в Qt для компиляторов MinGW и MSVC Для решения твой проблемы добавь в файл .pro строчку "LIBS += -lws2_32" она решит проблему , лично мне помогло.
Сейчас обсуждают на форуме
Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework Евгений, добрый день! Такой вопрос. Верно ли следующее утверждение: Любое Android-приложение, написанное на Java/Kotlin чисто теоретически (пусть и с большими трудностями) можно написать и на C+…
Павел Дорофеев14 апреля 2024 г. 9:35
Вернуть старое поведение QComboBox, не менять индекс при resetModel Добрый день! У нас много проектов в которых используется QComboBox, в версии 5.5.1, когда модель испускает сигнал resetModel, currentIndex не менялся. В версии 5.15 при resetModel происходит try…
Как получить в массив значения из связанной модели? Спасибо, разобрался:))
AC
QML Обнулить значения SpinBox Доброго времени суток, не могу разобраться с обнулением значение SpinBox находящего в делегате. import QtQuickimport QtQuick.ControlsWindow { width: 640 height: 480 visible: tr…
Alexandru Codreanu19 января 2024 г. 19:57
У класса QVariant есть метод toJsonValue() . Если учесть, что объекты между C++ и QML конвертируются автоматически, то при передаче QJsonValue в QML , объект должен преобразоваться в QJSValue
Так что следующий вариант может быть правильным:
Traceback (most recent call last): File "/home/mak/Рабочий стол/Diplom/Classes/ImpulseSystemClasses.py", line 60, in open callback.call([JS_TRUE_CONST, js_val]) TypeError: index 1 has type 'QJsonDocument' but 'QJSValue' is expected и для QJsonDocument и для QJsonValue
Тогда попробуйте написать соответствующий парсер. Поскольку метода для конвертирования сразу в QJSValue QVariant не имеет. Да и думаю, что это логично. Поскольку QJSValue может иметь сложную древовидную структуру со вложенными в свойства дополнительными QJSValue (то есть словарями свойств, в каком-то роде).