Size: a a a

2020 February 03

B

Bril in Qt
Ilia Zviagin
Да то, что в винде это не принято.
Инстал нужен для msys, он по дефолту копирует либы в свою /usr/lib, откуда все зависимости mingw при сборке подтягивает, для pkg-config и т.п
источник

ee

elias eliatto in Qt
mefest
звучит не очень. уверен что одним не обойтись?
Еще такой вариант - в timerEvent контроллера раз в 100 мс (к примеру) проверять QDateTime начало скачивания данных с текущей датой.
источник

m

mefest in Qt
elias eliatto
сторонний движок запускаю (у него встроенный таймаут дюже долгий, снаружи не поменять), жду асинхронно скачивание небольших данных в локальной сети по разным IP адресам. если не уложился в заданное время, то трактовать как недоступные данные.
можешь для каждого IP хранить время получения последнего пакета, и раз в секунду пробегаться по всем и смотреть кто долго висит
источник

ee

elias eliatto in Qt
mefest
можешь для каждого IP хранить время получения последнего пакета, и раз в секунду пробегаться по всем и смотреть кто долго висит
да, я типа такого и имел в виду (точность таймаута и не требуется).
источник

AT

Anatoly Tomilov in Qt
elias eliatto
Привет! Нормально ли использовать кучу QTimer'ов для  задания обработки таймаутов, когда речь идет  о максимум 1000 ожидаемых событий?
источник

AT

Anatoly Tomilov in Qt
Т.е. делать один таймер с высоким разрешением и обрабатывать логику нужных тебе событий в нём - смысла нет.
источник

AT

Anatoly Tomilov in Qt
Хотя нет. Вывод противоположный должен быть. Извиняюсь
источник

AS

Anatoly Shirokov in Qt
elias eliatto
да, я типа такого и имел в виду (точность таймаута и не требуется).
чем меньше таймеров, тем лучше
источник

AT

Anatoly Tomilov in Qt
https://stackoverflow.com/a/21557652/1430927 вот есть ограничение на количество хэндлов
источник

RL

Roman Levkovych𓅝 in Qt
Спасибо за серию, очень много нового. Но меня интересует немного другое: как создавать архитектуру для плюсовой части. Робота с сетью/бд и тд. В .Net пишут всякие репозитории/unit of work. А как такое делают в Qt?
источник

M

Mr.Mait in Qt
elias eliatto
Привет! Нормально ли использовать кучу QTimer'ов для  задания обработки таймаутов, когда речь идет  о максимум 1000 ожидаемых событий?
Можно попробовать завести QMap, где ключ будет timestamp, а значение - файл или ip. QMap сразу сортирует массив по ключу.
Берешь текущее время timestamp и ищешь ближайший ключ с помощью lowerBound или   upperBound (в зависимости от задачи). Как будет найден итератор, то последующие элементы делаешь timeout. Это все теория, но думаю должно все получится.
Ps, если не найден элемент, то возвращает end()
источник

GS

Georgy Shepelev in Qt
Roman Levkovych𓅝
Спасибо за серию, очень много нового. Но меня интересует немного другое: как создавать архитектуру для плюсовой части. Робота с сетью/бд и тд. В .Net пишут всякие репозитории/unit of work. А как такое делают в Qt?
Qt не является чем-то особенным, из ряда вон выходящим. Читайте Дядюшку Боба
источник

ee

elias eliatto in Qt
Mr.Mait
Можно попробовать завести QMap, где ключ будет timestamp, а значение - файл или ip. QMap сразу сортирует массив по ключу.
Берешь текущее время timestamp и ищешь ближайший ключ с помощью lowerBound или   upperBound (в зависимости от задачи). Как будет найден итератор, то последующие элементы делаешь timeout. Это все теория, но думаю должно все получится.
Ps, если не найден элемент, то возвращает end()
ок, спасибо,.
источник

AS

Anatoly Shirokov in Qt
Roman Levkovych𓅝
Спасибо за серию, очень много нового. Но меня интересует немного другое: как создавать архитектуру для плюсовой части. Робота с сетью/бд и тд. В .Net пишут всякие репозитории/unit of work. А как такое делают в Qt?
я вот пришел к следующим сущностям на стороне C++:
DataSource - отвечает за соединение с базой
EntityManager - базовый абстрактный класс предоставляющий основные операции по управлению сущностью
GenericEntityModel - обобщенная модель, связанная с EntityManager
источник

AS

Anatoly Shirokov in Qt
добавление новой сущности приводит к созданию наследника EntityManager
источник

AS

Anatoly Shirokov in Qt
use case примерно такой:
 void testLanguageModel()
   {
       LanguageManager manager;
       manager.setDataSource(&dataSource);
       QVariantList languageList = fillLanguageTable(manager);

       GenericEntityModel model;
       {
           QEventLoop loop;
           QObject::connect(&model, &EntityModel::refreshed, &model, [&loop]() {
               qDebug() << "Refreshed";
               loop.exit();
           });
           model.setEntityManager(&manager);
           qDebug() << "Refreshing";
           model.refresh();
           loop.exec();
           qDebug() << "Checking result";
           QCOMPARE(model.count(), languageList.count());

           for (auto &&expectedValue : languageList) {
               int actualIndex = model.indexOf(expectedValue);
               QVERIFY(actualIndex != -1);
               auto value = model.get(actualIndex);
               QCOMPARE(value, expectedValue);
           }
       }
       {
           qDebug() << "Clearing language table";
           {
               if (auto maybeAll = manager.findAllEntities()) {
                   QVariantList list = maybeAll.value().toList();
                   for (auto &&v : list) {
                       manager.removeEntity(v);
                   }
               }
           }
       }
   }
источник

RL

Roman Levkovych𓅝 in Qt
спасибо. Еще вопрос: если я хочу читать полные сорсы Qt, то мне надо с гита их брать? Потому что опция Sources в Maitenance tool не показывает cpp, только хедеры
источник

AS

Anatoly Shirokov in Qt
Roman Levkovych𓅝
спасибо. Еще вопрос: если я хочу читать полные сорсы Qt, то мне надо с гита их брать? Потому что опция Sources в Maitenance tool не показывает cpp, только хедеры
все показывает и cpp и header
источник

FS

Flower Surgeon in Qt
Roman Levkovych𓅝
спасибо. Еще вопрос: если я хочу читать полные сорсы Qt, то мне надо с гита их брать? Потому что опция Sources в Maitenance tool не показывает cpp, только хедеры
очевидно да
источник

RL

Roman Levkovych𓅝 in Qt
хмм, у меня Qt Creator не хочет переключать с header на cpp. Ето надо настроить?
источник