Как стать автором
Обновить
1
Павел @kkmspbread⁠-⁠only

девелопер cpp

Отправить сообщение

Делал похожую технологию, когда отлаживал 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 к примеру можно ожидать чего угодно, не тормозя поток.

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

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

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

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

KJob вам в помощь

А вы KJob использовали в Qt проектах? Я как-то первый раз об этом слышу.

Вы, видимо, никогда не писали приложений с более-менее сложным UI

Да и не планирую пока

Уже есть Qt6

Скоро 7 будет, тут нельзя останавливаться

Зачем вам свой single shot таймер?

Если вы обратили внимание:

    if ( ! connect ( tmr , SIGNAL(sig_retResult(bool, QVariant)),
                          this , SLOT(slot_retResult(bool, QVariant))) )

таймер возвращает результат в окно (индикации). Этим стандартный не устроил.

Зачем вам QVariant?

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

KJob вам в помощь

Спасибо конечно. KDE конечно интересно как вариант. Но блин билдить kde исходники пока не готов. На будущее конечно посмотрим и Akonadi в.т.ч. Кстати я под виндой если что.

Не превращайте ресурс в УГ

Ну извините, если задел ваше что-то.
Может кому из новичков все-таки полезно будет.
А "диалог окно на qt" я проверял по интернету и не раз. Тут же не речь о том как вывести диалоговое окно.

Хм, то есть обернули вызов слота в диалог?

В принципе да. Но команду можно запускать и вне диалога. Сама команда стартует отложенно по таймеру. Связь между ними диалогом и командой через signal/slot.

чтобы не фризить UI

QThread::sleep(100); тогда так лучше не делать

Похоже не исправили, по прежнему 404

да public забыл (как обычно), исправил

 Qt4 это c++98, даже не c++03

Да Qt 4 это C++98. И линакс просто С... И чем линакс плох?
В С++ 98 абстрактные классы есть, без лямбд мы обойдемся, R-value тоже не горит.
Но главное, без Qt5,6,7,8 можно прекрасно жить.

сигналы-слоты в Qt4 так вообще на макросах и строках

Но ведь работает? Я лично привык и мне не мешает (вроде бы)

использовать Qt4 сейчас это примерно как начинать учиться программировать под windows 98

Можно еще 3.11 вспомнить, учится никогда не навредит. Дело в удобстве, кто к чему привык и новых возможностях. Для меня Qt5 это не новые возможности, это больше новый гемморой.

С QVariant не удобно работать

Это кому как. Для меня в данном случае это реально панацея от лишних проблем.

Информация

В рейтинге
Не участвует
Откуда
Парголово, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность

Специализация

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