Pull to refresh
2
2
Павел @kkmspb

девелопер cpp

Send message

QVariant::userType()

Да еще раз спасибо, поправил проверку на тип по QVariant::userType() . Заодно добавил возможность добавлять QVariantList по ключу как элемент в QVariantMap.

зачем он использовал Qt

так исторически сложилось (наверное надо было быстро сделать готовое приложение). Qt это самодостаточный фреймворк.

 А потом бустовики будут ржать

А есть в буст готовый набор Core,Gui,Network,Svg, чтобы получить готовое приложение за день? Как я понял буст это всего лишь часть (библиотека, хоть и наверное во многом лучшая). Вы Гуй как отрисовываете?

На дворе 2024 год...

Не хочется разводить флуд, но мне кажется что в этой маленькой статейке и есть ответ. То есть не смотря на то какой год в Qt приходится вставлять очевидные костыли.

Поэтому метод canConvert() для этой цели использовать нельзя.

Спасибо учту

Я не про код, а про эту фразу

Я понял, шучу так

Лучше смотреть, какой конкретно тип лежит в QVariant

Да конечно обязательно и там (в QpMap) проверяется методом canConvert.

Map<QString, QMap<QString, QMap<QString, QVariant>>> map;
Но это если вы всегда храните значения только по такой структуре дерева.

Да, в это и есть проблема, надо заранее дерево планировать.

Это должно решить проблемы работы с копиями.

Чего-то сомнения взяли должно или решили? Не знаете?

добавили методы get/get_if для получения типизированных ссылок на внутренний элемент QVariant

Спасибо! Хорошая новость, хоть что-то начинает меняться в Qt. Но для меня опять получается не повод переходить на Qt6 (т.к. сам навелосипедил, а свое ближе к ...)

Где закрывающая скобка?

Да спс ,не скомпилируется

#include "common/json/my_json.h

Это только для вывода в qDebug QVariantMap в более читабельном виде (json строка с переносам и т.д.)

Что это? И почему уровень статьи "сложный"?

Не придирайтесь, какой уровень по вашему?

QMap умеет возвращать ключ по значению.

Не спорю

Скорее всего это и было препятствием в быстрой реализации.

В реализации чего?

Делал похожую технологию, когда отлаживал stm32 USB rndis, в тупиковых ситуациях очень помогает

Спасибо, красивая история, было интересно. Задумался как в приложении на С++ под виндой тоже такое организовать. Думаю Watch dog поток сделать, по аналогии с контроллерами. А то действительно - много версий одной программы уже работает и логи показывают например, что программа корректно открылась, но вот корректного закрытия не произошло (иногда)...

Но вот как сделать такое же в cpp файле я лично не пойму. Условие - через namespace.
На всякий случай Qt4, msvc-2010.

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

Недавно с удивлением случайно открыл в С++98 возможность в заголовках глобально определять QString через namespace. По факту надо было всего-то глобально один раз определить константную строку доступную в других единицах трансляции:

namespace my{

static const QString aaa =QString::fromUtf8("blablabla");

}

Это в хэдере.

Ну и от extra-cmake-modules

Тут похоже cmake надо использовать и Qt>=5. В общем я на qmake и Qt4, сами понимаете. Меня больше волнует нет ли в kde развития QTableView и QSqlTableModel. Вот это была бы новость.

Этого уже достаточно для (псевдо) асинхронности

Соглашусь, на timerEvent к примеру можно ожидать чего угодно, не тормозя поток.

Если исполняться будет на тредпуле

Стесняюсь спросить, вот у меня один поток в приложении - как у меня будет исполняться на тредпуле или ещё на чем-то?

Если вам нужен результат асинхронной операции , то для этого есть нормальные подходы

Я не уверен, но когда говорится про асинхронную операцию, то всегда создается второй поток.
Я все-таки в своем примере предполагаю, что у меня один поток.

Information

Rating
1,106-th
Location
Парголово, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity

Specialization

Fullstack Developer
Senior
From 250,000 ₽
OOP
Database
MySQL
PHP
C++
Programming microcontrollers
Qt
Software development
Development of drivers
C