Последнее обновление:
April 2, 2019

Есть мысль... Жми, напиши!
Qt

  • Рубрик нет

Qt, вызов функции с ограничением по времени выполнения (QtConcurrent::run timeout).

Потребовалось в одном проекте в критическом к скорости выполнения месте дёргать функции сторонней библиотеки, но загвоздка в том, что эти функции внутри ещё и дожидаются результата в цикле/магия. Мне от неё важно только получить код ошибки (если сразу возник), другой результат не так важен (потом запрашивается отдельно).
В общем задача: запустить функцию, по возможности дождаться результат, […]

Views :

43

Вылеты Q_ASSERT(c->sender == q_ptr);

Появилась достаточно странная бага — вылеты при отладке и чуть реже при релизе с этой ошибкой.
Сколько бы я не пытался выяснить конкретное место ошибки — везде был облом, пока не понял, что недавно одна из библиотек обновилась.
Чтож, виновник теоретический найден, но вот поиски что именно не так доставило несколько геммора. 
В общем причина была в незакрытом  #pragma […]

Views :

80

Модульное тестирование (Unit test) в Qt

И вот наконец-то и мне потребовалось, да не просто для понтов и потому что мейнстрим, а реально пиздецки потребовались тесты, ибо говнокодить над проектом стал не только я один.
И так, имеем проект с подпроектами. Хотим тесты. 
Следуя мануалу Qt нужно создать новый проект Unit test, в нём класс для теста, с помощью мастера создания Qt сделает […]

Views :

549

Использование интерфейсов классов в Qt и QML

Привет!
Порою удобнее в QML работать именно с интерфейсом класса, а так же иметь возможность засунуть его в QVariant.  
Разумеется простым способом в «лоб» не получится, т.к. Qt в QML работает с QObject, а мы от него не унаследовались и никакой информации для метасистемы не дали.
Долго я копался в недрах метасистемы Qt, уж собирался делать костыли, но […]

Views :

326

Печатаем из Qt на онлайн фискальнике ККТ PAYONLINE-01-ФА

В связи с очередным злоебучим ёбаным (по моему мнению) законом 54-ФЗ пришлось клиентам резко обновлять кассы и выкидывать из своего кармана 40 штук, что бы поменять шило на полноценный анальный зонд.
Я бы да же этому был бы рад из-за возможности заработать на обновлении, но вот что-то радоваться чужому горю вообще не фонтан.
В общем, подключаем приблуду […]

Views :

213

Qt, QEventLoop and connect/disconnect lambda function

Приветствую!
Кому некогда, можно сразу прыгнуть в конец к итогу.
Бывают ситуации, когда нужно синхронно дождаться завершения асинхронного действия, при этом не подвешивая основной поток (например, не продолжать выполнение функции, пока ответ в QTCPSocket onReadyRead от сервера не придёт).   
В нашем случае для примера давайте подождём с выполнением функции, пока таймер не досчитает до 5. 
Делаем основу:
#ifndef APPCORE_H
#define […]

Views :

392

Layout.fillWidth: true и Layout.preferredWidth/Layout.minimumWidth зависимость (очередная хитрость)

Сталкиваюсь иногда с некоторыми хитростями в QML, о которых, по всей видимости, приходится только догадываться, ибо то ли я проглядел это в документации, то ли этого действительно в ней не указано.
Так вот, задача: нужно три колонки одинаковой ширины.
Делаем:
import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Layouts 1.3

Window {
visible: true
width: 640
[…]

Views :

154

Кросскомпиляция Qt 5.12 для Raspberry Pi 1,2,3 B+ под Windows

В общем на Ubuntu скомпилили, открываем пост и компилим теперь под Windows.
1. Качаем актуальную версию Raspbian и с помощью WinFLASHTool  пишем её на сд карточку.
2. Так же.
3.
В дальнейшем везде будет подразумеваться х86 версия.
Качаем msys2, ставим в папку C:\SysGCC\msys2\
Качаем MinGW (у меня 730), распаковываем  в папку C:\SysGCC\mingw32 с соблюдением структуры.
Качаем Perl.
Запускаем C:\SysGCC\mingw32.exe,
pacman -Syu #попросит закрыть — закрываем, запускаем вновь […]

Views :

2534

Кросскомпиляция Qt 5.9 и Qt 5.12 для Raspberry Pi 1, Raspberry Pi 3 (B+)

Пока в разгаре новогодние праздники захотелось попробовать в действии Raspberry Pi (Здесь для модели 3 B+, но так же подходит и для 1,2), а именно чего-нибудь для неё написать, хотя бы Hello World с помощью Qt. Ставить весь Qt на саму малинку как-то долго, да и пока на ней компилируется простейшая программа можно упиться в […]

Views :

9546

Программирование и отладка STM32F3 Discovery в QtCreator под Windows

Впринципе, алгоритм действий точно такой же, как и в предыдущем посте под Ubuntu
Здесь приведу лишь отличия по пунктам

Качаем  драйвер, распаковываем и ставим. Вместо ST-Link поставим OpenOCD  , скачиваем, распаковываем в любую папку.
так же
Качаем GCC ARM с https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads (справа в списке экзешник) и ставим.  отладчик qtcreator-gdb-7-7-mingw32_nt-6-1-i686 (т.к. для Qt Creator нужно, что бы он был с поддержкой питона), распаковываем в […]

Views :

2043