Показаны сообщения с ярлыком Программирование. Показать все сообщения
Показаны сообщения с ярлыком Программирование. Показать все сообщения

22 июля 2015 г.

Статическая сборка Qt 5.4.1 с MinGW на Windows

     Все что касалось этой статьи о статической сборке Qt 4.8 относится и к Qt 5.4. Поэтому, чтобы не писать одно и тоже вступление, посмотрите его в той статье. Предлагаю сразу перейти к действию.
     Цель та же - хотим создавать переносимые приложения, но уже на Qt 5.4 под Windows с компилятором MinGW.
     Поехали!

Статическая сборка Qt 4.8.7 с MinGW на Windows


    Пролистав всю документацию Qt, изучив не один десяток статей посвященных статической сборке библиотек Qt, так и не удалось найти тот единственно верный вариант настройки, который бы позволил мне без ошибок скомпилировать переносимое приложение Qt, без необходимости таскать с собой все библиотеки (mingw*.dll, libgcc*.dll, Qt*.dll).
    И лишь только собрав все рекомендации воедино, методом проб и ошибок удалось найти правильный алгоритм, который я попытаюсь в данной статье раскрыть.
    Но для начала, собственно, а зачем это все нужно?

Установка и настройка библиотеки Qt 5.4.1 на Windows с компилятором MinGW

    Описав процесс установки Qt версии 4, подумал, что для полноты картины необходимо осветить установку библиотеки Qt 5 (на данный момент последняя 5.4.1). В принципе, особых трудностей не должно возникнуть, но все же пойдем по порядку. Так же традиционно запустим проект "Hello, world!" для убеждения, что все поставилось.
    Установка проходит на чистую Windows 7 x64.
    Осторожно, будет много картинок

16 января 2015 г.

Работа с Graphics View Framework в Qt

    В данный момент работаю с SVG-графикой в Qt и чтобы не забыть того, что узнал из работы с Graphics View Framework хочу написать данный цикл статей, пока эти знания у меня из головы не вылетели. Возможно кому-то кроме меня он окажется полезен, и я буду только рад этому. Сразу хочу сказать что, где-то могут быть ошибки и неточности. Я не профи в этом и только учусь.
    Не хочу расписывать подробно "что это такое", это уже давно сделали до меня. Приведу лишь одну схему, поясняющую модель взаимодействия объектов:

    И по отдельности хочу рассказать про каждый класс, и те нюансы с которыми мне пришлось столкнуться.

21 апреля 2014 г.

Установка драйвера для работы с базой данных MySQL

    Вы уже познакомились с Qt, знаете что такое сигнал и слот, написали уже несколько программ, и вот решили подключиться к запущенной и настроенной БД MySQL, и обнаружили что "из коробки" такая возможность отсутствует, а в Qt по умолчанию имеется поддержка только:
    Примечание:
    1. Это можно узнать вызвав статический метод QSqlDatabase::drivers()или запустив этот проект (взят отсюда).
    2. Для библиотеки Qt5.x.x будет другой результат (например, для Qt5.2.1 он такой), хотя просто так работать все равно не будет.


    Следовательно для работы с MySQL надо раздобыть где-нибудь этот драйвер. Варианта два:
1. Собрать самому.
2. Использовать уже готовый.
    Примечание:
    Для библиотеки Qt5.x.x требуется лишь скопировать библиотечный файл по необходимому пути (см. пункт 9).


    Если самостоятельно собирать их нет желания, то переходим к концу пункта 7.
    Я же опишу полный процесс компиляции драйвера MySQL и выложу результаты (готовые драйвера).

Установка и настройка библиотеки Qt 4.8.5 и QtCreator 3 на Windows с компилятором MinGW

    Как оказалось, скачав лишь Qt libraries 4.8.5 for Windows (minGW 4.4, 317 MB), создать свою программу на Qt не удастся. Помимо этого файла, в первую очередь, нужен рабочий компилятор (для данной версии это MinGW не ниже 4.4), который придется устанавливать отдельно, и скачать уже готовый. Среда разработки (Qt Creator 3.1.0 for Windows (68 MB)) оказалась поставляется вне библиотек Qt 4.8.5 и тоже требует отдельной установки. Ну и напоследок, если собираетесь запускать свою программу в отладчике по шагам (а я уверен, что рано или поздно придется это делать), то необходим еще и свой отладчик (GDB имеющийся в MinGW не подходит)
    А теперь обо всем по порядку.

Программирование на Qt

    Изучив более-менее C++, и научившись создавать простенькие (и не очень) консольные программы, я понял то, что на одних только консольных приложениях далеко не уедешь, и надо бы научиться создавать понятный и красивый графический интерфейс пользователя. Чтобы можно было бы стукнуть мышкой по кнопке в программе и она бы соответствующим образом отреагировала, отобразила бы какое-нибудь новое окошко или еще что-нибудь по круче.