БлогNot. Установка QT под Windows и правильные Helloworld'ы :)

Установка QT под Windows и правильные Helloworld'ы :)

QT - ещё один мегаглючный популярный инструмент для разработки на C++. Во всяком случае, если Вы заглянете в тематический раздел Киберфорума, Вы увидите, что вместе с Visual C++ (Studio) и Builder именно Qt образует "большую тройку" современных сред разработки для C++. К тому же, сторонники Qt говорят, что только он изначально соблюдает концепцию ООП и весь из себя кроссплатформенный :) Мдя, ну и бесплатный open source, конечно.

Как нам поставить и настроить это чудо под обычную 32- (64-) разрядную Windows? Смотрим официальный сайт, не ленимся нажать Show downloads.

Онлайн-сборки инсталлятора могут называться вроде

qt-opensource-windows-x86-1.5.0-2-online.exe

Увы, они будут докачивать порядка 800 Мб при установке и, по статистике, чаще становятся криво.

Офлайн-сборки (нажать Show Downloads на странице загрузок) могут называться, например

qt-opensource-windows-x86-mingw48_opengl-5.2.1.exe
qt-windows-opensource-5.0.1-mingw47_32-x86-offline.exe

Это значит что они - с собственным компилятором MinGW и под 32-разрядную Windows. Есть еще сборки, предназначенные для работы с компилятором Visual Studio, тогда в имени сборки есть "studio". Не советую их, даже если установлен полный Visual Studio.

Скачать, установить. Актуальная версия 5.2.1 включает в себя IDE под названием Qt Creator, ставшее более-менее полноценным, во всяком случае, после пары ухищрений заработала отладка.

Запускаем установщик, по умолчанию будет предложен путь установки C:\Qt\Qt5.2.1, не стоит его менять. Включаем компоненты Qt, MinGW, Qt Creator, Sources - необязательно.

Возможные проблемы при запуске QT Creator:

1. Ошибки при запуске (отсутствует libstdc++-6.dll и т.п.)

В чём дело: в переменных окружения не определена библиотека Qt и не прописан путь к компилятору. Исправляем ситуацию – создаем в переменных среды переменную QTDIR, содержащую значение

C:\Qt\Qt5.2.1\5.2.1\mingw48_32

Кроме того, в системную переменную Path через точку с запятой прописываем пути

C:\Qt\Qt5.2.1\5.2.1\mingw48_32\bin
C:\Qt\Qt5.2.1\Tools\mingw48_32\bin
Как это сделать:
Windows XP: Мой компьютер, Свойства, Дополнительно, Переменные среды, Path, Изменить
Windows 7: Мой компьютер, Свойства, Дополнительные параметры системы, Переменные среды, Системные переменные, Path, Изменить

Это необходимо сделать также для того, чтобы собранные Вами приложения могли запускаться из проводника Windows или другого файл-менеджера.

2. Запускается, но присутствуют сообщения об ошибках (например, "Точка входа в процедуру __gxx_personality_v0 не найдена в библиотеке libstdc++-6.dll").

В чём дело: кривые сборки Qt Creator. Собирайте компилятор MinGW вручную (в инете об этом есть) или поставьте QT Creator 3.0.1, основанный на сборке Qt 5.2.1 (файл qt-opensource-windows-x86-mingw48_opengl-5.2.1.exe), в нём такого бага не наблюдалось.

3. На работает отладка и т.п. Не исключено, что по умолчанию вообще работает только подсветка кода :)

В чём дело: кривизна-с. В меню Инструменты, Параметры, на вкладке Сборка и запуск, Профили Qt проверяем, что имеется автоопределённая связка Qt 5.2.1 + MinGW 32bit, это добавляет Qt Creator. На вкладке Сборка и запуск, Комплекты (в немного более ранних сборках - Инструментарии) должна быть автоопределенная связка инструментов Desktop Qt 5.2.1 MinGW 32bit, эту связку также добавляет Qt Creator, но в ней может быть указан неправильный отладчик, а редактированию она не поддается. У меня помогло просто создание новой связки с помощью кнопки Добавить, ей присваиваем какое-либо другое имя, например, Desktop QT 5.2.1 MinGW Patched, нажимаем кнопку Сделать по умолчанию. В нижней части окна для новой связки необходимо выбрать такие же параметры как и для автоопределенной (Desktop, Локальный ПК (по умолчанию для Desktop), MinGW (x86 32bit) - если желаете, можно и через Visual Studio компилировать, будет ещё медленнее), но указать другой отладчик, воспользовавшись кнопкой Управление, Добавить, Обзор... В открывшемся окне указываем путь к отладчику вида C:\Qt\Qt5.2.1\Tools\mingw48_32\bin\gdb.exe и нажимаем Применить.

4. Что ещё проверить и настроить перед созданием первого проекта.

Запускаем Qt Creator, выбираем пункт главного меню Инструменты, Параметры... на вкладке Текстовый редактор, Шрифт и цвета устанавливаем понравившийся шрифт (Courier New или другой моноширинный шрифт для листингов - рулит), на вкладке Текстовый редактор, Поведение выбираем кодировку файлов, по умолчанию Юникод (UTF-8). На вкладке Сборка и запуск, Основное указываем папку проектов, например, C:\Qt\Projects (эту папку надо предварительно создать; в пути к ней, как и к другим папкам Qt, не должно быть символов кириллицы и/или пробелов; имя пользователя в системе - тоже латиницей).

Теперь два главных действия должно быть легко выполнить:

  • меню Отладка, Начать отладку, Начать отладку или клавиша F5
  • меню Сборка, Запустить или комбинация клавиш Ctrl+R

Можно попробовать. Сначала консольное приложение: меню Файл, Новый файл или проект, Приложения, Консольное приложение Qt. Только встроенный код ничего не делает, а в инете и книгах обычно неработающие "Hello, world". Напишем работающий main.cpp :)

#include <QtCore/QCoreApplication>
#include <iostream>
#include <stdio.h>

using namespace std;

int main(int argc, char *argv[]) {
    QCoreApplication a(argc, argv);
    printf("Hello World\n");
    return a.exec();
}

Теперь попробуем "приложение с интерфейсом": меню Файл, Новый файл или проект, создать приложение QT Widgets. Текст модуля main.cpp:

#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[]) {
    QApplication a(argc, argv);
    MainWindow w;
    QString Title = QString("Hello, world!"); w.setWindowTitle(Title); 
    //или w.setWindowTitle("Hello, world!");
    w.show();

    return a.exec();
}

Жмём Файл, Закрыть все документы и проекты - и вернёмся к начальному окну, готовые к новым подвигам :)

P.S. Ну и проблема ещё в том, что в инете и книгах большинство примеров - по QT4, а в QT5 есть заметные отличия, самое очевидное -

#include <QtWidgets>

вместо

#include <QtGui>

Подробнее здесь. А вот тут - много примеров с исходниками именно по QT5.

Ниже можно скачать оффлайн-сборку QT 5.2.1 с QT Creator и компилятором MinGW. При полной установке она обеспечивает нормальную работу приложения и не лезет в инет за дополнительными компонентами.

 Скачать оффлайн-сборку QT 5.2.1 с QT Creator и компилятором MinGW в файле .exe, 634 Мб

 Как слинковать приложение QT статически для работы на другом компьютере? DLL Collector

 Как сделать Windows-инсталлятор для приложения на QT? InnoSetup

18.04.2014, 18:38 [69001 просмотр]


теги: программирование c++ ошибка софт qt

показать комментарии (1)