Последнее обновление:
October 18, 2019

Есть мысль... Жми, напиши!
Программирование

Пишу о всем, что делаю, что получается, или нет)))

Статическая сборка Qt 5.12 из исходников под Windows

Потребовалось мне тут, что бы Qt приложение было в одном exe.  Для этого придётся перекомпилировать Qt. Качаем: Git Качаем: Perl, версию 32х битную. Качаем: Python 2 (У меня 2.7). Качаем: MinGW, y меня 730 (для распаковки нужен 7Zip, запускать «C:\Programm Files (x86)\7-Zip\7zFM.exe»). Открываем консольку (Win+R, вводим cmd), прописываем необходимые системные переменные (пути замените на свои): Переходим […]

Views :

274

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

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

Views :

109

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

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

Views :

114

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

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

Views :

794

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

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

Views :

442

AVFrame(AVPicture) конвертация в OpenCV::Mat

Понадобилось тут мне сконвертировать  AVFrame в Mat для дальнейших издевательст с помощью OpenCV, загуглил я это дело, и нашёл кучу способов. Вот один из них: void AVFrameToMat(const AVFrame * frame, Mat& image) { int width = frame->width; int height = frame->height; image = Mat(height, width, CV_8UC3); int cvLinesizes[1]; cvLinesizes[0] = image.step1(); SwsContext* conversion = sws_getContext(width, […]

Views :

248

Компиляция libav для поддержки h264 видео.

Привет!  Понадобилось мне в одном из проектов декодировать h264 поток, думал обойдусь без сторонних либ, глянул спеку на 300 страниц и передумал, нашёл библиотеку libav, у которой очень много фич по декодированию аудио и видео.  Ок, компилируем: sudo apt-get install libx264-148 libx264-dev #148 замените на актуальную версию cd ~/Projects/libav git clone git://git.libav.org/libav.git ./configure —enable-libx264 —enable-gpl […]

Views :

96

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

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

Views :

283

Qt, QEventLoop and connect/disconnect lambda function

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

Views :

482

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 :

235