Возможна ли интеграция MSVS и Qt4?
От: AlexGin Беларусь  
Дата: 22.01.16 08:08
Оценка:
Доброго времени суток, уважаемые коллеги!

Начал освоение Qt — установил Qt SDK, в составе которого имеется Qt Creator.
Эта штука функционирует вполне нормально!

Однако, так как я много работаю с MSVS, то я подумал об интеграции Qt и вижуалки.
Скачал пакет qt-vs-addin 1.1.10 и после установки в меню студий 2008 и 2010 появился пункт Qt

Тем не менее, радость оказалась преждевременной.
Настройка этого продукта (через меню Qt/настроек в студии) не работает —
когда пытаюсь установить Path — пишет, что там qmake неверный (под mingw) — в чем же проблема?

Очень благодарен, за любые соображения и подсказки по данному поводу!

P.S. 1) Возможно, копаю в неверном направлении, так как эту линию продуктов поддерживала
фирма Nokia, а теперь, будучи поглощенной MS, они закинули все это?
2) Вообще все продукты Qt линии — имеют ли какие-либо перспективы, в свете данной ситуации?

Стоит ли пытаться интегрировать Qt и MSVS, или оставить это?
Отредактировано 22.01.2016 8:10 AlexGin . Предыдущая версия .
Re: Возможна ли интеграция MSVS и Qt4?
От: Nikolaz Германия www.nikeware.com
Дата: 22.01.16 08:50
Оценка: 21 (3)
Здравствуйте, AlexGin, Вы писали:

AG>Стоит ли пытаться интегрировать Qt и MSVS, или оставить это?

Стоит

AG>когда пытаюсь установить Path — пишет, что там qmake неверный (под mingw) — в чем же проблема?

А какой конкретно Qt был установлен?
Их там много всяких (под разные платформы):
Qt 5.5.1 for Windows 64-bit (VS 2013, 823 MB) (info)
Qt 5.5.1 for Windows 32-bit (VS 2013, 804 MB) (info)
Qt 5.5.1 for Windows 32-bit (VS 2012, 747 MB) (info)
Qt 5.5.1 for Windows 32-bit (VS 2010, 725 MB) (info)
Qt 5.5.1 for Windows 32-bit (MinGW 4.9.2, 1.0 GB) (info)

В вашем случае нужен тот, что для VS 201*. Качаем, ставим.
Потом ищем что-то вроде e:\Qt\5.5.0-msvc\5.5\msvc2013\bin\qtenv2.bat
Выполняем.

Далее в зависимости от версии Qt устанавливаем:
Visual Studio Add-in 1.1.11 for Qt4 (112 MB) (info)
или
Visual Studio Add-in 1.2.4 for Qt5 (156 MB) (info)

Если нужно дебажить сам Qt код, то скорее всего придётся собирать Qt самому из исходников, чтобы получить "pdb и прочее" для отладки конкретно в VS.
Как пример: здесь

Николай

p.s. Cам я тоже далеко не гуру по Qt, так что не обессудьте...
Отредактировано 22.01.2016 8:54 Nikolaz . Предыдущая версия .
Re[2]: Возможна ли интеграция MSVS и Qt4?
От: AlexGin Беларусь  
Дата: 22.01.16 09:55
Оценка:
Здравствуйте, Nikolaz, Вы писали:

AG>>когда пытаюсь установить Path — пишет, что там qmake неверный (под mingw) — в чем же проблема?

N>А какой конкретно Qt был установлен?
Понятненько — был установлен Qt под MinGW — посему этот продукт и не мог найти то, что нужно!

N>Их там много всяких (под разные платформы):

N>Qt 5.5.1 for Windows 64-bit (VS 2013, 823 MB) (info)
N>Qt 5.5.1 for Windows 32-bit (VS 2013, 804 MB) (info)
N>Qt 5.5.1 for Windows 32-bit (VS 2012, 747 MB) (info)
N>Qt 5.5.1 for Windows 32-bit (VS 2010, 725 MB) (info)
N>Qt 5.5.1 for Windows 32-bit (MinGW 4.9.2, 1.0 GB) (info)
Пока хотел бы попробовать (для начала) Qt4 там 4.5 или выше, но не пятый.

N>В вашем случае нужен тот, что для VS 201*. Качаем, ставим.

N>Потом ищем что-то вроде e:\Qt\5.5.0-msvc\5.5\msvc2013\bin\qtenv2.bat
N>Выполняем.

N>Далее в зависимости от версии Qt устанавливаем:

N>Visual Studio Add-in 1.1.11 for Qt4 (112 MB) (info)
Хорошо, попробую!

N>Если нужно дебажить сам Qt код, то скорее всего придётся собирать Qt самому из исходников, чтобы получить "pdb и прочее" для отладки конкретно в VS.

N>Как пример: здесь
Посмотрю — может быть, это именно то, что мне нужно.

N>Николай

Большое спасибо, уважаемый Николай!
Попробую!
Re[2]: Возможна ли интеграция MSVS и Qt4?
От: DiPaolo Россия  
Дата: 22.01.16 10:18
Оценка:
Здравствуйте, Nikolaz, Вы писали:

N>В вашем случае нужен тот, что для VS 201*. Качаем, ставим.

N>Потом ищем что-то вроде e:\Qt\5.5.0-msvc\5.5\msvc2013\bin\qtenv2.bat
N>Выполняем.

Вот это шаг необязателен.

N>Если нужно дебажить сам Qt код, то скорее всего придётся собирать Qt самому из исходников, чтобы получить "pdb и прочее" для отладки конкретно в VS.

N>Как пример: здесь

Дебажиться в Qt коде также можно без дополнительных усилий. Все там уже есть. По-крайней мере, в коммерческой версии. Но для обычной должно быть также.

Вот, например, что я ставил для коммерческой версии:
qt-win-commercial-4.8.4-vs2010-64bit.exe
qt-vs-addin-enterprise-1.2.4.exe

Все! После этого все работало, можно было дебажиться внутрь, и не надо никаких батников.
Патриот здравого смысла
Re: Возможна ли интеграция MSVS и Qt4?
От: Serpuh фотомер.рф
Дата: 22.01.16 10:32
Оценка: 6 (1)
Здравствуйте, AlexGin, Вы писали:
AG>Стоит ли пытаться интегрировать Qt и MSVS, или оставить это?

Стоит, по удобству VS гораздо лучше Креатора. Как уже написали качается сборка под нужную версию студии и далее в настройках Студии QT -> Qt Options указывается путь к qmake к примеру C:\Qt\Qt5.4.0\5.4\msvc2013_opengl. Папку bin указывать не надо ибо ругается на это.
Re[3]: Возможна ли интеграция MSVS и Qt4?
От: SaZ  
Дата: 22.01.16 10:49
Оценка: +1
Здравствуйте, AlexGin, Вы писали:

AG>Пока хотел бы попробовать (для начала) Qt4 там 4.5 или выше, но не пятый.


А какой в этом смысл? Для того, чтобы водить современный легковой автомобиль не нужно осваивать паровой двигатель.

1) Qt4 уже не поддерживается и объявлена устаревшей. Для ней возможен выпуск только критических патчей. Да и то, как показывает опыт, вряд ли qt.io будут этим заниматься.
2) Если берёте Qt4, то берите версию не ниже 4.8.6. Вам не нужен никакой Qt4.5 и прочие древние версии. Всё что работает под Qt4.5 — точно так же заработает под Qt4.8.6.
3) Qt4 не поддерживает современные компиляторы. Зачем изучать C++03, когда уже есть C++11/14? Язык намного гибче и лаконичнее. К тому же Qt5 старается по максимуму поддерживать современные стандарты. В Qt5 очень много преимуществ, по сравнению с Qt4.

В качестве инструмента вообще можете взять MSVS 2013 сommunity edition + Qt5.5.1 + Visual Studio Add-in 1.2.4. Всё отлично работает из коробки и официально бесплатно.
Re[4]: Возможна ли интеграция MSVS и Qt4?
От: AlexGin Беларусь  
Дата: 22.01.16 11:03
Оценка:
Здравствуйте, SaZ, Вы писали:

SaZ>Здравствуйте, AlexGin, Вы писали:


AG>>Пока хотел бы попробовать (для начала) Qt4 там 4.5 или выше, но не пятый.


SaZ>А какой в этом смысл? Для того, чтобы водить современный легковой автомобиль не нужно осваивать паровой двигатель.

Просто у меня имется литература:
1) M.Шлее "Qt4.5 профессиональное програмирование";
2) А.Боровский "Qt4.7 практическое програмирование".
Не уверен, насколько корректно примеры под Qt4 подойдут для Qt5.
Также не уверен, насколько хорошо будет стыковаться MSVS-2013 и Qt5.

Ну, а все остальное — в смысле MSVS-2013 — у меня установлено, и активно применяется.

SaZ>Зачем изучать C++03, когда уже есть C++11/14? Язык намного гибче и лаконичнее.

Если делать первые шаги в C++ (а я именно только начал изучать Qt), ИМХО не важно C++03 или C++11/14 — конструктор и деструктор своё назначение НЕ МЕНЯЛИ.
В то же время, лишний гемор — когда выяснится, что примеры из книг не идут, мне действительно лишний
Отредактировано 22.01.2016 11:09 AlexGin . Предыдущая версия .
Re[2]: Возможна ли интеграция MSVS и Qt4?
От: AlexGin Беларусь  
Дата: 22.01.16 11:22
Оценка:
Здравствуйте, Serpuh, Вы писали:

S>Стоит, по удобству VS гораздо лучше Креатора. Как уже написали качается сборка под нужную версию студии и далее в настройках Студии QT -> Qt Options указывается путь к qmake к примеру C:\Qt\Qt5.4.0\5.4\msvc2013_opengl. Папку bin указывать не надо ибо ругается на это.

+100500
Заметил это (выделенное), один день поработав с Qt Creator. Именно поэтому и озаботился данным вопросом.

P.S. Вот Вы, уважаемый Serpuh, рекомендуете Qt5.4 — насколько оно будет совместимо с примерами из литературы по Qt4.5 и Qt4.7?
Я прекрасно понимаю, что MS заботится о совместимости своих продуктов, и те примеры, например по MFC, что шли под VC-6,
можно запустить под MSVC-2013; 2015. Однако, насчёт такой совместимости в мире Qt я не уверен.
Отредактировано 22.01.2016 11:29 AlexGin . Предыдущая версия .
Re[5]: Возможна ли интеграция MSVS и Qt4?
От: DiPaolo Россия  
Дата: 22.01.16 11:40
Оценка:
Изучать Qt4 или Qt5 — зависит от Вас и целей, которые перед Вами стоят.

Базовые механизмы и подходы одни и те же. Большинство классов те же. По-крайней мере, на начальном этапе вообще не должно возникнуть вопросов про различия 4-й и 5-й версий.

Обратная совместимость у Qt нормальная. Примеры должны запускаться и работать в Qt5-окружении.
Патриот здравого смысла
Re[3]: Возможна ли интеграция MSVS и Qt4?
От: Serpuh фотомер.рф
Дата: 22.01.16 11:49
Оценка:
Здравствуйте, AlexGin, Вы писали:
AG>P.S. Вот Вы, уважаемый Serpuh, рекомендуете Qt5.4 — насколько оно будет совместимо с примерами из литературы по Qt4.5 и Qt4.7?

Про QML не в курсе, но построение интерфейса при помощи обычных форм вроде одинаковое. Сам использую QT для работы с OpenCV, т.к. вывод графики проще и логичнее чем в VC++.
Re: Возможна ли интеграция MSVS и Qt4?
От: DiPaolo Россия  
Дата: 22.01.16 11:59
Оценка: 6 (1) +1
Здравствуйте, AlexGin, Вы писали:

AG>P.S. 1) Возможно, копаю в неверном направлении, так как эту линию продуктов поддерживала

AG>фирма Nokia, а теперь, будучи поглощенной MS, они закинули все это?

Qt уже перешел от Nokia — http://www.digia.com/en/Home/Company/Press/2012/Digia-to-acquire-Qt-from-Nokia/

А сейчас вообще поддерживается The Qt Company:

The Qt Company, a wholly owned subsidiary of Digia Plc.



AG>2) Вообще все продукты Qt линии — имеют ли какие-либо перспективы, в свете данной ситуации?


Конечно имеют. Выскажу личное мнение: не вижу альтернатив у Qt для десктопа по совокупности всех факторов, если требуется поддержка более одной платформы.

AG>Стоит ли пытаться интегрировать Qt и MSVS, или оставить это?


Что же касается Qt Creator — он специфичен и к нему надо привыкнуть после MSVS. Но, если требуется работать под разными платформами, то выбор Qt Creator — очень хороший вариант.
Патриот здравого смысла
Re: Возможна ли интеграция MSVS и Qt4?
От: lexer_lx Украина  
Дата: 22.01.16 12:01
Оценка: 1 (1)
Здравствуйте, AlexGin, Вы писали:

AG>Стоит ли пытаться интегрировать Qt и MSVS, или оставить это?


Конечно стоит.
С момента перевода проекта на Cmake Visual Studio Add-in был выкинут за ненадобностью, Cmake превосходно делает все сам.
Re[2]: Возможна ли интеграция MSVS и Qt4?
От: AlexGin Беларусь  
Дата: 22.01.16 12:32
Оценка:
Здравствуйте, lexer_lx, Вы писали:

_>Здравствуйте, AlexGin, Вы писали:


AG>>Стоит ли пытаться интегрировать Qt и MSVS, или оставить это?


_>Конечно стоит.

_>С момента перевода проекта на Cmake Visual Studio Add-in был выкинут за ненадобностью, Cmake превосходно делает все сам.
Уважаемый lexer_lx, поясните пожалуйста Вашу мысль — я так понимаю, что "Visual Studio Add-in" — в данном контексте это элемент связи между Qt и студией.
А вот Cmake — это утилита, в чем-то альтернативная студии — верно?
Re[3]: Возможна ли интеграция MSVS и Qt4?
От: lexer_lx Украина  
Дата: 22.01.16 12:44
Оценка: +1
Здравствуйте, AlexGin, Вы писали:

AG>Уважаемый lexer_lx, поясните пожалуйста Вашу мысль — я так понимаю, что "Visual Studio Add-in" — в данном контексте это элемент связи между Qt и студией.

AG>А вот Cmake — это утилита, в чем-то альтернативная студии — верно?

Cmake — позволяет выполнить описание проекта и генерировать исходные файлы проекта для сборки его под конкретными системами (например, msvc).
В том числе, он знает про Qt и выполняет требуемые moc, rcc, uic (это должно быть написано в Cmake-скриптах).
Visual Studio Add-in на крупном проекте порой жутко тормозил и глючил. Доходило до крайностей: при добавлении новых файлов в проект моки для них не генерировались, пока не убьешь проект полностью и не воссоздашь заново.
Re: Возможна ли интеграция MSVS и Qt4?
От: velkin Удмуртия https://kisa.biz
Дата: 22.01.16 14:08
Оценка: 32 (2) +1 -1
Здравствуйте, AlexGin, Вы писали:

AG>2) Вообще все продукты Qt линии — имеют ли какие-либо перспективы, в свете данной ситуации?

AG>Стоит ли пытаться интегрировать Qt и MSVS, или оставить это?

Лучше поставь второй операционкой Debian, текущая версия 8-ая, архитектура под компьютер, скорее всего amd64 (у майкрософт x64, так же известна как x86-64). Раньше использовал MBR, теперь GPT, переход между ними с помощью GRUB, но там само всё настроится, главное выбрать автоматическую разметку. Debian мультиархитектурна, потом можно будет добавить поддержку i386, плюс включить репозиторий Multimedia и на забыть поставить проприетарные драйвера на видеокарту, желательно не с сайта, а из репозитория, чтобы потом всякие стимы не ругались.

На примере зеркала яндекса, можно использовать и официальный.

nano /etc/apt/sources.list

deb http://mirror.yandex.ru/debian/ jessie main contrib non-free
deb-src http://mirror.yandex.ru/debian/ jessie main contrib non-free

deb http://mirror.yandex.ru/debian-multimedia/ jessie main non-free
deb-src http://mirror.yandex.ru/debian-multimedia/ jessie main non-free

deb http://mirror.yandex.ru/debian-security/ jessie/updates main contrib non-free
deb-src http://mirror.yandex.ru/debian-security/ jessie/updates main contrib non-free


Для Windows на первых порах можно использовать:
https://download.qt.io/official_releases/qt/4.8/4.8.7/

Но лучше привыкать к MinGW (Minimalist GNU for Windows), это порт GCC (GNU Compiler Collection), а Debian как известно принадлежит к GNU/Linux.

На ситуацию с прекращением развития 4.8.x можно смотреть по-разному. К примеру, она больше не обновляется функционально, с другой стороны это же и плюс, её можно один раз выучить, а не постоянно переучиваться, и это несомненное благо. Как уже сказал, в Windows надо начинать с последней версии, это 4.8.7.

Так же стоит отметить, что рабочий стол KDE построен на Qt, потому на Debian лучше накатить:

su пароль (для перехода в root)
apt-get install kde-full


Почему Debian (или другой GNU/Linux), а не Windows. Да хотя бы потому, что там можно делать такие вещи как:

su пароль (для перехода в root)
cd /usr/local/src
apt-get source qt4-x11

И исходник оказывается разархивированным в нужной папке. А можно пользоваться консолью yakuake один раз запустить, а потом клавиша F12, и mc запустив его в консоли потом просто переходить через Ctrl-O в консольный режим и обратно.

su пароль (для перехода в root)
apt-get install yakuake mc synaptic


Что касается установки исходников, то так можно поставить практически всё, что есть в репозитории, это как бы deb-src для обычных бинарных deb пакетов, что видно в примере выше. А бинарники можно будет synaptic'ом потыкать, тем более нужно будет ставить Qt, QtCreator и множество других библиотек. Между прочим проекты начинающиеся на K[название] могут помочь в освоении Qt, так как сделаны для KDE, но уже не такие игрушечные как примеры из книг.

Что касается Qt, и в частности 4.8.x, то перспективы у него есть, ведь он интегрирован во множество библиотек, и сам может использовать ещё большее количество. А программы при этом можно портировать на множество архитектур и операционок простой перекомпиляцией.

Что касается книг в порядке убывания крутизны:

1. Макс Шлее: Qt 4.8 Профессиональное программирование на C++
предыдущие версии 4.5, 4.2, 3.2
лучше пользоваться версией 4.8, можно считать это дополненным изданием
2. Марк Саммерфилд+Жасмин Бланшет: Qt 4.3 Программирование GUI на C++ 2-е издание
предыдущие версии 4.1, 3.2
понятное дело лучше использовать 4.3
3. Марк Саммерфилд: Qt 4.6 Профессиональное программирование Разработка кроссплатформенных приложений на C++


Всё остальное, не слишком впечатляет, в том числе Андрей Боровский с корявыми примерами и несколько других книг. В электронном виде упомянутые книги бывают как в высшем качестве, то есть цветные с абсолютно полным и достоверным текстовым слоем, так и отвратительного. Так же в интернете есть примеры для всех книг, да не по одному разу.

И конечно не стоит забывать о демках входящих в комплект самого Qt, там и красивая оболочка для запуска всех примеров, и их исходный код. Примеры из книг можно объединить в одни пакет, а потом везде компилировать, но это уже другая история.
Re[4]: Возможна ли интеграция MSVS и Qt4?
От: AlexGin Беларусь  
Дата: 22.01.16 14:14
Оценка:
Здравствуйте, lexer_lx, Вы писали:

_>Здравствуйте, AlexGin, Вы писали:


AG>>Уважаемый lexer_lx, поясните пожалуйста Вашу мысль — я так понимаю, что "Visual Studio Add-in" — в данном контексте это элемент связи между Qt и студией.

AG>>А вот Cmake — это утилита, в чем-то альтернативная студии — верно?

_>Cmake — позволяет выполнить описание проекта и генерировать исходные файлы проекта для сборки его под конкретными системами (например, msvc).

_>В том числе, он знает про Qt и выполняет требуемые moc, rcc, uic (это должно быть написано в Cmake-скриптах).
_>Visual Studio Add-in на крупном проекте порой жутко тормозил и глючил. Доходило до крайностей: при добавлении новых файлов в проект моки для них не генерировались, пока не убьешь проект полностью и не воссоздашь заново.
Ясно, спасибо!
Возможно, сказывается, что Visual Studio Add-in — не нативное (не мс-ное) творение.
CMake — утилита командной строки, хоть и работает быстрее, но такого удобства как студия, не даёт. Верно?
Re[3]: Возможна ли интеграция MSVS и Qt4?
От: velkin Удмуртия https://kisa.biz
Дата: 22.01.16 14:28
Оценка: 1 (1)
Здравствуйте, AlexGin, Вы писали:

AG>А вот Cmake — это утилита, в чем-то альтернативная студии — верно?


CMake

CMake (от англ. cross platform make) — это кроссплатформенная система автоматизации сборки программного обеспечения из исходного кода. CMake не занимается непосредственно сборкой, a лишь генерирует файлы управления сборкой из файлов CMakeLists.txt:

Makefile в системах Unix для сборки с помощью make;
файлы projects/solutions (.vcproj/.sln) в Windows для сборки с помощью Visual C++;
проекты XCode в Mac OS X


Однако работая с Qt для достижения кроссплатформенности будет достаточно Qmake

qmake- это утилита из состава Qt, которая помогает облегчить процесс сборки приложения на разных платформах. qmake автоматически генерирует make-файлы, основываясь на информации в файлах проекта(*.pro).

(информация из руководства)

qmake – программное средство, с помощью которого упрощается процесс сборки проекта при разработке для разных платформ. qmake автоматизирует создание файла сборки, так как требуется только несколько строчек информации для создания каждого такого файла. qmake может быть использован для любого программного проекта, независимо от того, написан ли он на Qt или нет.

qmake создает файл сборки, не требуя от разработчика вносить изменения в файл проекта.

Re[5]: Возможна ли интеграция MSVS и Qt4?
От: Anton Batenev Россия https://github.com/abbat
Дата: 22.01.16 15:16
Оценка: 6 (1)
Здравствуйте, AlexGin, Вы писали:

AG> Не уверен, насколько корректно примеры под Qt4 подойдут для Qt5.


Примеры, возможно, и подойдут (на то они и примеры). Но различия и несовместимости между ветками есть и иногда они неожиданны.
В мире Linux ветка 4.8 будет еще использоваться несколько лет (например, Debian 8 EOL будет только в 2020 году), по этому если думать о кросс-платформенном ПО, то имеет смысл писать на 4.8 проверяя / реализуя совместимость с 5.х.
... в первом классе мне говорили, что нужно делиться, а теперь говорят, что это незаконно ...
Re[5]: Возможна ли интеграция MSVS и Qt4?
От: LaptevVV Россия  
Дата: 22.01.16 17:31
Оценка: 2 (1)
AG>Просто у меня имется литература:
AG>1) M.Шлее "Qt4.5 профессиональное програмирование";
AG>2) А.Боровский "Qt4.7 практическое програмирование".
В сети давно болтается Шлее 4.8 и даже Шлее 5.3. Там и QtCreator описан.
Кроме того, ссыль на книжку я тут постил — она тоже поновее Боровского...

AG>Если делать первые шаги в C++ (а я именно только начал изучать Qt), ИМХО не важно C++03 или C++11/14 — конструктор и деструктор своё назначение НЕ МЕНЯЛИ.

Но добавился конструктор переноса!
AG>В то же время, лишний гемор — когда выяснится, что примеры из книг не идут, мне действительно лишний
У Шлее те коды, которые я пробовал — все работали.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Возможна ли интеграция MSVS и Qt4?
От: AlexGin Беларусь  
Дата: 22.01.16 17:58
Оценка:
Здравствуйте, уважаемый velkin, Вы писали:

V>Лучше поставь второй операционкой Debian, текущая версия 8-ая, архитектура под компьютер, скорее всего amd64 (у майкрософт x64, так же известна как x86-64).

Очень хорошая идея, но я пока планирую войти в мир кроссплатформенного посредством Qt. Пока оставаясь на привычной мне винде
Что же касается IDE, то я пока установил Qt Creator 1.2.1 (из Qt SDK), но очень хотел бы приспособить вижуалку для данных целей.

V>Для Windows на первых порах можно использовать:

V>https://download.qt.io/official_releases/qt/4.8/4.8.7/
Спасибо, интересная ссылка. Возможно это именно то, что я ищу

V>Но лучше привыкать к MinGW (Minimalist GNU for Windows), это порт GCC (GNU Compiler Collection), а Debian как известно принадлежит к GNU/Linux.

Подумаю над этим вариантом, может он и окажется удачным.
Посмотрю, что за такой зверь MinGW.

V>На ситуацию с прекращением развития 4.8.x можно смотреть по-разному. К примеру, она больше не обновляется функционально, с другой стороны это же и плюс, её можно один раз выучить, а не постоянно переучиваться, и это несомненное благо. Как уже сказал, в Windows надо начинать с последней версии, это 4.8.7.

+100500

Далее Вы, уважаемый velkin, пишете о преимуществах Linux. Мне, как старому виндузятнику, это понять трудно, посему в это я не вникал.

V>Что касается установки исходников, то так можно поставить практически всё, что есть в репозитории, это как бы deb-src для обычных бинарных deb пакетов, что видно в примере выше. А бинарники можно будет synaptic'ом потыкать, тем более нужно будет ставить Qt, QtCreator и множество других библиотек. Между прочим проекты начинающиеся на K[название] могут помочь в освоении Qt, так как сделаны для KDE, но уже не такие игрушечные как примеры из книг.

Возможно, освоившись с базовыми вещами Qt, я вернусь к этим моментам.

V>Что касается Qt, и в частности 4.8.x, то перспективы у него есть, ведь он интегрирован во множество библиотек, и сам может использовать ещё большее количество. А программы при этом можно портировать на множество архитектур и операционок простой перекомпиляцией.

Это очень хорошо, что при переходе на другую ОС не требуется разработки новой версии!

V>Что касается книг в порядке убывания крутизны:

V>

V>1. Макс Шлее: Qt 4.8 Профессиональное программирование на C++
V>предыдущие версии 4.5, 4.2, 3.2
V>лучше пользоваться версией 4.8, можно считать это дополненным изданием
V>2. Марк Саммерфилд+Жасмин Бланшет: Qt 4.3 Программирование GUI на C++ 2-е издание
V>предыдущие версии 4.1, 3.2
V>понятное дело лучше использовать 4.3
V>3. Марк Саммерфилд: Qt 4.6 Профессиональное программирование Разработка кроссплатформенных приложений на C++

Первое у меня есть по Qt4.5 (в бумажном варианте и с DVD диском), второе и третье — в электронном виде, в хорошем качестве.

V>И конечно не стоит забывать о демках входящих в комплект самого Qt, там и красивая оболочка для запуска всех примеров, и их исходный код. Примеры из книг можно объединить в одни пакет, а потом везде компилировать, но это уже другая история.


Огромное спасибо, уважаемый velkin, за столь развернутый ответ!
Re[3]: Возможна ли интеграция MSVS и Qt4?
От: DiPaolo Россия  
Дата: 22.01.16 18:10
Оценка: +1
Здравствуйте, AlexGin, Вы писали:

AG>Что же касается IDE, то я пока установил Qt Creator 1.2.1 (из Qt SDK), но очень хотел бы приспособить вижуалку для данных целей.


Советую ставить более свежую версию Qt Creator. У меня 3.6. Т.е. 1.2.1 весьма старая. И я помню, что более ранние версии были не столь удобны и функциональны, как последующие. Это может оттолкнуть. "Осадочек останется"

V>>Что касается Qt, и в частности 4.8.x, то перспективы у него есть, ведь он интегрирован во множество библиотек, и сам может использовать ещё большее количество. А программы при этом можно портировать на множество архитектур и операционок простой перекомпиляцией.

AG>Это очень хорошо, что при переходе на другую ОС не требуется разработки новой версии!

Справедливости ради, в реальных проектах не всегда достаточно лишь перекомпиляции. Иногда надо ОС-специфичные куски кода вставлять. Но в целом, конечно — кросс-платформенность хорошая и это огромный плюс Qt.

V>>Что касается книг в порядке убывания крутизны:

V>>

V>>1. Макс Шлее: Qt 4.8 Профессиональное программирование на C++
V>>предыдущие версии 4.5, 4.2, 3.2
V>>лучше пользоваться версией 4.8, можно считать это дополненным изданием
V>>2. Марк Саммерфилд+Жасмин Бланшет: Qt 4.3 Программирование GUI на C++ 2-е издание
V>>предыдущие версии 4.1, 3.2
V>>понятное дело лучше использовать 4.3
V>>3. Марк Саммерфилд: Qt 4.6 Профессиональное программирование Разработка кроссплатформенных приложений на C++

AG>Первое у меня есть по Qt4.5 (в бумажном варианте и с DVD диском), второе и третье — в электронном виде, в хорошем качестве.

Как по мне, так я бы читал свежие документации онлайн. Там есть развернутые статьи по базовым концепциям. Плюс всегда актуальная информация. Да и примеров кода полно.
Патриот здравого смысла
Отредактировано 22.01.2016 18:10 DiPaolo . Предыдущая версия .
Re[4]: Возможна ли интеграция MSVS и Qt4?
От: velkin Удмуртия https://kisa.biz
Дата: 22.01.16 18:48
Оценка:
Здравствуйте, DiPaolo, Вы писали:

DP>Как по мне, так я бы читал свежие документации онлайн. Там есть развернутые статьи по базовым концепциям. Плюс всегда актуальная информация. Да и примеров кода полно.


Можно и не свежие, зато хотя бы частично русифицированные.
http://doc.crossplatform.ru/qt/4.8.x/html-qt/
Re[6]: Возможна ли интеграция MSVS и Qt4?
От: AlexGin Беларусь  
Дата: 22.01.16 19:00
Оценка:
Здравствуйте, уважаемый LaptevVV, Вы писали:

AG>>Просто у меня имется литература:

AG>>1) M.Шлее "Qt4.5 профессиональное програмирование";
AG>>2) А.Боровский "Qt4.7 практическое програмирование".
LVV>В сети давно болтается Шлее 4.8 и даже Шлее 5.3. Там и QtCreator описан.
Хочется освоить весь Qt — и как библиотеку классов, и все вспомогательные утилиты (в т.ч. и QtCreator),
в то же время, если есть возможность работать в привычной мне среде MSVS, то не следует упускать этот шанс

LVV>Кроме того, ссыль на книжку я тут постил — она тоже поновее Боровского...

Я уже скачал файл этой книжки (АлтЛинукс "Программирование на языке С++ в среде Qt Creator" группа отечественных авторов).
В книге много нового (с главы 12). Порорабатываю и эти материалы.
Огромное спасибо, уважаемый профессор!

LVV>У Шлее те коды, которые я пробовал — все работали.

То есть, можно брать Qt 5.3/5.4 и вперед — это отлично
Отредактировано 23.01.2016 8:36 AlexGin . Предыдущая версия .
Re[3]: Возможна ли интеграция MSVS и Qt4?
От: velkin Удмуртия https://kisa.biz
Дата: 22.01.16 19:13
Оценка:
Здравствуйте, AlexGin, Вы писали:

AG>Здравствуйте, уважаемый velkin, Вы писали:


V>>Лучше поставь второй операционкой Debian, текущая версия 8-ая, архитектура под компьютер, скорее всего amd64 (у майкрософт x64, так же известна как x86-64).

AG>Очень хорошая идея, но я пока планирую войти в мир кроссплатформенного посредством Qt. Пока оставаясь на привычной мне винде

Потому и надо ставить Debian (amd64, kde) второй операционкой. Выделить место в конце диска и установить с автоматической разметкой. Проблемы обычно бывают, когда сначала ставится линукс, а потом винда, но не наоборот. Тоже был виндузятником, но лет 8 назад захотелось кроссплатформенности, так постепенно затянуло в GNU/Linux, на это ушли годы, и всё равно у меня винда стоит второй операционкой. А вот помню в конце прошлого тысячелетия VS 6.0 казалась очень крутой IDE, потом была VS 2003, VS 2005, ну, а потом с этого слез и перешёл на кроссплатформу. Между прочим Qt Creator кроссплатформенная IDE, файлы проекта *.pro обрабатываются как раз той самой qmake, в линуксе будет ещё и valgrind. Вспомнился мой старый топик — ТОП лучших инструментов C++.
Удачная интеграция MSVS и Qt4!
От: AlexGin Беларусь  
Дата: 23.01.16 08:20
Оценка:
Разобрался сегодня утром в стуации!
Удалось приспособить MSVS-2010 к совместной работе с Qt 4.8.7

Замечу, что вчера я выполнил uninstall для qt-vs-addin-1.1.10.

Сегодня, прежде всего, как мне тут советовал уважаемый velkin, скачал пакет:
qt-opensource-windows-x86-vs2010-4.8.8.exe и проинсталлировал его.

Этот продукт установлен на C:\Qt\4.8.7, а прежняя версия (с DVD прилагаемого к книге М.Шлее по Qt4.5) у меня на C:\Qt\2009.03.

Затем опять проинсталлировал вышеупомянутый qt-vs-addin-1.1.10 — теперь он стал как к себе домой —
т.е. в студии, в окне настроек плагина (меню Qt->Qt Options) сразу стояли верные настройки!
Там имеется Path=C:\Qt\4.8.7 — после этого удалось создать и откомпилировать проект в вижуалке!!!

Огромное спасибо всем, особенно товарищу velkin, за ценные мысли и подсказки!!!

P.S. Попутно замечу, что никаких батников вызывать не потребовалось.

ПРИМЕЧАНИЕ:
Батник вызывается только при запуске среды MSVS-2010 в режиме разработки (он устанавливает переменные окружения).
Отредактировано 06.02.2016 18:50 AlexGin . Предыдущая версия . Еще …
Отредактировано 23.01.2016 8:26 AlexGin . Предыдущая версия .
Отредактировано 23.01.2016 8:24 AlexGin . Предыдущая версия .
Re: Удачная интеграция MSVS и Qt4!
От: LaptevVV Россия  
Дата: 23.01.16 08:38
Оценка:
AG>P.S. Попутно замечу, что никаких батников вызывать не потребовалось.
Когда будешь ставить следующую версию — не ставь поверх.
Сначала все снеси, а потом наново ставь свежую.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Удачная интеграция MSVS и Qt4!
От: DiPaolo Россия  
Дата: 23.01.16 08:51
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Когда будешь ставить следующую версию — не ставь поверх.

LVV>Сначала все снеси, а потом наново ставь свежую.

Не стоит так делать. Разные версии Qt замечательно уживаются вместе. Например, так:
C:\Qt\4.7.4
C:\Qt\4.8.7
C:\Qt\5.0
C:\Qt\5.5

Далее в проекте выбираешь нужную версию. В итоге, можно будет независимо использовать разные версии Qt в разных проектах. Для примеров, тех же.
Патриот здравого смысла
Re[3]: Удачная интеграция MSVS и Qt4!
От: LaptevVV Россия  
Дата: 23.01.16 08:56
Оценка:
LVV>>Когда будешь ставить следующую версию — не ставь поверх.
LVV>>Сначала все снеси, а потом наново ставь свежую.
DP>Не стоит так делать. Разные версии Qt замечательно уживаются вместе. Например, так:
DP>C:\Qt\4.7.4
DP>C:\Qt\4.8.7
DP>C:\Qt\5.0
DP>C:\Qt\5.5
DP>Далее в проекте выбираешь нужную версию. В итоге, можно будет независимо использовать разные версии Qt в разных проектах. Для примеров, тех же.
Спасибо за инфу.
Мой опыт говорит об обратном.
Пока не снес предыдущую версию, новая работала криво и косо.
Снес, наново установил — все заработало как часы. Но это было года полтора назад...
Опыт работы именно с Qt у мене не велик.
Вполне возможно, что нынешние версии прекрасно уживаются с предыдущими без лишних телодвижений...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: Удачная интеграция MSVS и Qt4!
От: AlexGin Беларусь  
Дата: 23.01.16 11:00
Оценка:
Здравствуйте, уважаемый DiPaolo, Вы писали:

DP>Не стоит так делать. Разные версии Qt замечательно уживаются вместе. Например, так:

DP>C:\Qt\4.7.4
DP>C:\Qt\4.8.7
DP>C:\Qt\5.0
DP>C:\Qt\5.5

DP>Далее в проекте выбираешь нужную версию. В итоге, можно будет независимо использовать разные версии Qt в разных проектах. Для примеров, тех же.


В такой конфигурации появляется резонный вопрос:
В переменную среды PATH (в настройках ОС Windows) — прописывать путь к какой версии?
Re[4]: Удачная интеграция MSVS и Qt4!
От: DiPaolo Россия  
Дата: 23.01.16 11:22
Оценка: 6 (1)
Здравствуйте, AlexGin, Вы писали:

AG>В такой конфигурации появляется резонный вопрос:

AG>В переменную среды PATH (в настройках ОС Windows) — прописывать путь к какой версии?

Советую не прописывать в PATH. У меня, например, не прописано. Объясню, почему это может быть удобно:
Если у Вас несколько Qt и есть несколько проектов, которые надо собирать разными версиями, или же надо собирать один проект, но с разными версиями (ну мало ли .
Тогда вы каждый раз настраиваете нужное окружение (например, запускаете тот или иной скрипт). Т.е. набираете себе кирпичики, которые нужны на данный конкретный момент. Это очень хорошо укладывается, кстати, в подход, применяемый в Linux-среде.

Опять-таки, представьте, что у Вас еще есть сборки Qt для мобильников (для ARM и х86). И Вам нужно оперировать разными. UI для мобильника на одном Qt. Движок на другой версии. Ну это так, для примера.

Или другой пример. Берете исходники какого-нибудь проекта с GitHub, а там нудна определенная версия Qt, которой у Вас нет. Не будете же Вы менять свое окружение для этого. Вы просто накатите нужную версию Qt, испоьзуете ее для сборки. Ваше основное рабочее окружение никак не пострадает.

Возможны различные варианты, в зависимоти от Ваших предпочтений и того, как Вы привыкли работать.

1) Например, в Windows при установке Qt Add-in появляется шорткат в Пуске "Qt 4.8.4 Command Prompt", который вызывает нужный батник для настройки конкретного окружения:

%COMSPEC% /k "C:\apps\Qt\4.8.4\bin\qtvars.bat vsvars"


В qtvars.bat прописано, в частности:
echo Setting up a Qt environment...

set QTDIR=C:\apps\Qt\4.8.4
echo -- QTDIR set to C:\apps\Qt\4.8.4
set PATH=C:\apps\Qt\4.8.4\bin;%PATH%
echo -- Added C:\apps\Qt\4.8.4\bin to PATH
set QMAKESPEC=win32-msvc2010
echo -- QMAKESPEC set to "win32-msvc2010"


Ну это моя конкретная конфигурация.

Таким образом, можно запускать этот пункт в Пуске (их будет несколько для разных версий). Или же написать свои удобные батники и использовать C:\apps\Qt\4.8.4\bin\qtvars.bat и прочие напрямую.

2) Можно в Студии выбирать дефолтную версию Qt. Она сама все сделает.
3) Под Линуксом можно также использовать свои скрипты и зыпускать тот или иной в зависимоти от того, какая версия Qt нужна.
4) Можно в Qt Creator настраивать конфигурации, в том числе и задавать конфигурацию по умолчанию.

Более того, в Qt Creator Вы можете собирать из кирпичиков себе не только Qt, но и компилятор, и дебаггер и т.д. Получается в итоге различные инструменты сборки, которые нужны именно Вам.

Лично для меня иметь разные Qt — очень удобно. Но это зависит от Ваших привычек и нужд.
Патриот здравого смысла
Отредактировано 23.01.2016 11:24 DiPaolo . Предыдущая версия .
Re: Возможна ли интеграция MSVS и Qt4?
От: DiPaolo Россия  
Дата: 23.01.16 11:34
Оценка: +1
Кстати, AlexGin, по Вашим сообщениям я помню, что Вы долго используете Win API. Поэтому советую ознакомиться с Qt Coding Conventions и Qt Code Style. Также советую смотреть исходники и заголовочники Qt.

https://wiki.qt.io/Coding_Conventions
https://wiki.qt.io/Qt_Coding_Style

Стиль Qt разительно отличается от принятого в Win API. Советую придерживаться Qt-стиля и не использовать венгерскую нотацию.
Патриот здравого смысла
Re[4]: Удачная интеграция MSVS и Qt4!
От: velkin Удмуртия https://kisa.biz
Дата: 23.01.16 14:11
Оценка: 2 (2)
Здравствуйте, LaptevVV, Вы писали:

LVV>Мой опыт говорит об обратном.

LVV>Пока не снес предыдущую версию, новая работала криво и косо.
LVV>Снес, наново установил — все заработало как часы. Но это было года полтора назад...
LVV>Опыт работы именно с Qt у мене не велик.
LVV>Вполне возможно, что нынешние версии прекрасно уживаются с предыдущими без лишних телодвижений...

Версии Qt прекрасно уживались и уживаются друг с другом. По большому счёту они никак не взаимодействуют и находятся в разных папках. Если говорить о Qt Creator, то желательно посмотреть в меню "Инструменты=>Параметры...=>Сборка и запуск", а там уже все вкладки, особенно Комплекты, Профили Qt, Компиляторы, Отладчики, причём сделать это пока "всё работает как часы". Там есть списки, при наведении на элементы можно узнать информацию о настройках. Если сложно запомнить, то просто заскринить, и потом легко будет настроить любые конфигурации, вроде динамической и статической сборки, разные версии Qt, и так далее. Телодвижений на самом деле несколько кликов мыши, главное знать какие файлы выбрать.
Re[2]: Возможна ли интеграция MSVS и Qt4?
От: AlexGin Беларусь  
Дата: 23.01.16 14:24
Оценка:
Здравствуйте, уважаемый DiPaolo, Вы писали:

DP>Кстати, AlexGin, по Вашим сообщениям я помню, что Вы долго используете Win API. Поэтому советую ознакомиться с Qt Coding Conventions и Qt Code Style. Также советую смотреть исходники и заголовочники Qt.

Да, именно так — работал много над WinAPI и MFC проектами.
Тепрь, когда взялся за изучение Qt, у меня создалось впечатление, что Qt лаконичнее и менее избыточно, чем WinAPI и MFC.

DP>https://wiki.qt.io/Coding_Conventions

DP>https://wiki.qt.io/Qt_Coding_Style

DP>Стиль Qt разительно отличается от принятого в Win API. Советую придерживаться Qt-стиля и не использовать венгерскую нотацию.

Спасибо, уважаемый DiPaolo, посмотрю данные материалы!
Re[2]: Возможна ли интеграция MSVS и Qt4?
От: Submitter  
Дата: 25.01.16 05:11
Оценка:
Здравствуйте, Serpuh, Вы писали:

S>Стоит, по удобству VS гораздо лучше Креатора.


Вы не могли бы, тоже как новичку, перечислить преимущества чем он лучше Креатора? Пока большой минус для VS 2013 — он тормозит на моем компе.
Re[4]: Возможна ли интеграция MSVS и Qt4?
От: Igore Россия  
Дата: 25.01.16 06:54
Оценка:
Здравствуйте, lexer_lx, Вы писали:

_>Visual Studio Add-in на крупном проекте порой жутко тормозил и глючил. Доходило до крайностей: при добавлении новых файлов в проект моки для них не генерировались, пока не убьешь проект полностью и не воссоздашь заново.

Да, есть такое, если не хочется пересоздавать заново, то проблема в том что интеграция добавляет информацию в конец проекта, кто виноват интеграция или студия я
  Пример элемента
  <ItemGroup>
    <CustomBuild Include="ui\form.ui">
      <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Uic%27ing %(Identity)...</Message>
      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\_generated\ui_%(Filename).h;%(Outputs)</Outputs>
      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\uic.exe" -o ".\_generated\ui_%(Filename).h" "%(FullPath)"</Command>
      <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Uic%27ing %(Identity)...</Message>
      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\_generated\ui_%(Filename).h;%(Outputs)</Outputs>
      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\uic.exe" -o ".\_generated\ui_%(Filename).h" "%(FullPath)"</Command>
    </CustomBuild>
  </ItemGroup>

если открыть проект на редактирование и перенести данные к остальным, то всё генерируется и собирается. Причем у меня такая проблема наблюдается только Release, для Debug все генерируется и собирается.
Re[3]: Возможна ли интеграция MSVS и Qt4?
От: Serpuh фотомер.рф
Дата: 25.01.16 07:21
Оценка: 2 (1)
Здравствуйте, Submitter, Вы писали:
S>Вы не могли бы, тоже как новичку, перечислить преимущества чем он лучше Креатора? Пока большой минус для VS 2013 — он тормозит на моем компе.

Я Креатор глубоко не копал, но общераспространенное мнение что в Студии гораздо лучше отладчик. Редактор в Студии для меня гораздо приятнее, вообщем я себя так и не смог заставить работать в Креаторе.
Re[4]: Удачная интеграция MSVS и Qt4!
От: SaZ  
Дата: 25.01.16 12:47
Оценка: +1
Здравствуйте, AlexGin, Вы писали:

AG>В такой конфигурации появляется резонный вопрос:

AG>В переменную среды PATH (в настройках ОС Windows) — прописывать путь к какой версии?

Не использовать PATH. Вообще. Нужно так настроить сборку, чтобы для конкретного проекта бралась конкретная версия Qt.
Re[5]: Возможна ли интеграция MSVS и Qt4?
От: SaZ  
Дата: 25.01.16 12:52
Оценка:
Здравствуйте, AlexGin, Вы писали:

AG>CMake — утилита командной строки, хоть и работает быстрее, но такого удобства как студия, не даёт. Верно?


Нет. CMake это система сборки файлов проекта под все популярные IDE. Вы на языке cmake описываете проект и говорите через командную строку (ещё есть GUI), для какой IDE сгенерировать файлы проекта. Например, можно сгенерировать проект для MSVS и работать с ним как с родным.
Re[5]: Возможна ли интеграция MSVS и Qt4?
От: SaZ  
Дата: 25.01.16 13:14
Оценка: +2
Здравствуйте, AlexGin, Вы писали:


AG>Не уверен, насколько корректно примеры под Qt4 подойдут для Qt5.

AG>Также не уверен, насколько хорошо будет стыковаться MSVS-2013 и Qt5.

Я поясню. Qt гарантирует совместимость в рамках мажорной версии. Т.е. то, что написано под Qt 4.5 будет 100% так же выглядеть под Qt 4.8. С учётом того, что в последней версии исправлены многие баги.
Я не особо агитирую на переход сразу на Qt5x.

AG>Ну, а все остальное — в смысле MSVS-2013 — у меня установлено, и активно применяется.


Я сам использую msvs 2013 / 2015. Отличная среда разработки. И официально поддерживается Qt. Но, Qt4x под 2013 студию придётся компилировать вручную, т.к. готовых бинарников Qt не выкладывает.


AG>Если делать первые шаги в C++ (а я именно только начал изучать Qt), ИМХО не важно C++03 или C++11/14 — конструктор и деструктор своё назначение НЕ МЕНЯЛИ.


Как рядом заметили, появился конструктор перемещения. И он активно используется. В Qt отказываются от велосипедов: советуют переходить на алгоритмы из STL, те же конструкторы перемещения позволяют значительно оптимизировать производительность при работе со строками и т.п. Плюс лямбды — значительно облегчают жизнь.
Re[3]: Возможна ли интеграция MSVS и Qt4?
От: Denwer Россия  
Дата: 25.01.16 15:48
Оценка:
Здравствуйте, Submitter, Вы писали:

S>Здравствуйте, Serpuh, Вы писали:


S>>Стоит, по удобству VS гораздо лучше Креатора.


S>Вы не могли бы, тоже как новичку, перечислить преимущества чем он лучше Креатора? Пока большой минус для VS 2013 — он тормозит на моем компе.


Отладчик в креаторе — дерьмо полное, плюс тормозной. Но свои проекты все равно на креаторе делаю, все же кроссплатформенность и хорошая интеграция библиотеки в ИДЕ. Например в студии нельзя добавлять сигналы виджета и тут же их редактировать.
Re[6]: Возможна ли интеграция MSVS и Qt4?
От: AlexGin Беларусь  
Дата: 25.01.16 21:14
Оценка:
Здравствуйте, уважаемый SaZ, Вы писали:

SaZ>Здравствуйте, AlexGin, Вы писали:


AG>>Не уверен, насколько корректно примеры под Qt4 подойдут для Qt5.

AG>>Также не уверен, насколько хорошо будет стыковаться MSVS-2013 и Qt5.

SaZ>Я поясню. Qt гарантирует совместимость в рамках мажорной версии. Т.е. то, что написано под Qt 4.5 будет 100% так же выглядеть под Qt 4.8. С учётом того, что в последней версии исправлены многие баги.

Огромное спасибо, буду знать!
SaZ>Я не особо агитирую на переход сразу на Qt5x.
...согласен...

AG>>Ну, а все остальное — в смысле MSVS-2013 — у меня установлено, и активно применяется.


SaZ>Я сам использую msvs 2013 / 2015. Отличная среда разработки. И официально поддерживается Qt. Но, Qt4x под 2013 студию придётся компилировать вручную, т.к. готовых бинарников Qt не выкладывает.

Приспособил MSVS-2010 под Qt 4.8.7.
Однако, обнаружил, что многое из того, что умеет QtCreator, НЕ умеет MSVS приспособленная к работе с Qt

AG>>Если делать первые шаги в C++ (а я именно только начал изучать Qt), ИМХО не важно C++03 или C++11/14 — конструктор и деструктор своё назначение НЕ МЕНЯЛИ.


SaZ>Как рядом заметили, появился конструктор перемещения. И он активно используется. В Qt отказываются от велосипедов: советуют переходить на алгоритмы из STL, те же конструкторы перемещения позволяют значительно оптимизировать производительность при работе со строками и т.п. Плюс лямбды — значительно облегчают жизнь.

Попутный вопрос: значит на все контейнеры Qt (QVector, QList, etc.) можно свободно "забить" и применять вместо них STL контейнеры?
Ещё вопрос: насколько на сегодняшний день Qt поддерживает новые стандарты C++? (тот же C++11)
Re[4]: Возможна ли интеграция MSVS и Qt4?
От: AlexGin Беларусь  
Дата: 25.01.16 21:18
Оценка:
Здравствуйте, уважаемый Denwer, Вы писали:

D>Отладчик в креаторе — дерьмо полное, плюс тормозной. Но свои проекты все равно на креаторе делаю, все же кроссплатформенность и хорошая интеграция библиотеки в ИДЕ. Например в студии нельзя добавлять сигналы виджета и тут же их редактировать.

+100500
Я уже заметил, что добавить связи сигнал->слот в редакторе студии невозможно — приходится вызывать QtCreator
Re[3]: Возможна ли интеграция MSVS и Qt4?
От: _hum_ Беларусь  
Дата: 26.01.16 10:16
Оценка:
Здравствуйте, Submitter, Вы писали:

S>Здравствуйте, Serpuh, Вы писали:


S>>Стоит, по удобству VS гораздо лучше Креатора.


S>Вы не могли бы, тоже как новичку, перечислить преимущества чем он лучше Креатора? Пока большой минус для VS 2013 — он тормозит на моем компе.


о, помню, как день мучался, искал ошибку, а оказалось, что креатор из-за каких-то там своих прибабахов просто проводил дебаг по старому коду (то есть, картинка показывается нового кода, а пошаговое выполнение идет, будто бы это старый код (например, там, где в новом коде стоит i = 2, а в старом стояло i = 0, он показывает на код "i = 2" и при этом заносит в переменную i значение 0).
никакие перестроения "начисто" (как в вижуале) не помогли.

да и вообще, одно то, что они даже не потрудились сделать дополнительные окна в виде всплывающих (как в вижуале), чтоб те не мешались, когда не надо, ив то же время легко были дсотупны, говорит об отношении к программисту (это как после windows переходить на консольный unix — все ручками).
Re[5]: Возможна ли интеграция MSVS и Qt4?
От: Igore Россия  
Дата: 26.01.16 10:52
Оценка:
Здравствуйте, AlexGin, Вы писали:

D>>Отладчик в креаторе — дерьмо полное, плюс тормозной. Но свои проекты все равно на креаторе делаю, все же кроссплатформенность и хорошая интеграция библиотеки в ИДЕ. Например в студии нельзя добавлять сигналы виджета и тут же их редактировать.

AG>+100500
AG>Я уже заметил, что добавить связи сигнал->слот в редакторе студии невозможно — приходится вызывать QtCreator
Интеграция дизайнера форм для студии только в комерческой версии вроде. А так, использую Qt Designer(bin\designer.exe) + студия.
Re[7]: Возможна ли интеграция MSVS и Qt4?
От: SaZ  
Дата: 26.01.16 11:38
Оценка:
Здравствуйте, AlexGin, Вы писали:

AG>...

AG>Попутный вопрос: значит на все контейнеры Qt (QVector, QList, etc.) можно свободно "забить" и применять вместо них STL контейнеры?

Все Qt контейнеры (включая строки) поддерживают COW. Причём, потокобезопасно. А вот для STL контейнеров придётся значительно больше думать. В том числе при размещении элементов, для которых не реализован конструктор перемещения. Я пока сам не особо владею навыками использования конструктора перемещения.

Но, главный аргумент в пользу Qt контейнеров для Qt приложений это то, что Qt использует свои контейнеры внутри своего фреймворка. Нужно вам, например, получить список дочерних классов — вам вернут QList< QObject * >. Нужно получить или передать список строк, берётся QStringList. Потом, есть замечательный класс QVariant, который не имеет STL аналогов. Придётся тащить буст.

Про контейнеры так же надо помнить, что есть различия. std::set хранит элементы в виде map, а QSet в виде хэш таблицы.


AG>Ещё вопрос: насколько на сегодняшний день Qt поддерживает новые стандарты C++? (тот же C++11)


С++ 11 поддерживается начиная с 5-й версии. Причём, если я не ошибаюсь, начиная с Qt 5.7 поддержка компиляторов С++03 будет или убрана совсем или получит статус deprecated.
Реализован цикл for для всех Qt контейнеров (можно писать for ( auto text : stringList ) {...}. Активно пишутся конструкторы перемещения (за счёт их наличия значительно ускоряется работа со строками).
Очень важная фича, это дополнительный синтаксис QObject::connect. Теперь сигналы и слоты передаются как указатели на методы, а не через строки, завёрнутые в макросы, и проверка совместимости сигнала и слота делается в compile-time, а не в runtime. Т.е. можно писать connect( button, &QPushButton::clicked, this, &MyWidget::onBtnClicked );, что выглядит намного лаконичнее (и лучше поддерживается всякими autocomplete утилитами, типа ReSharper'а).

P.S. что на вскидку могу вспомнить, про нововведения в Qt5, которые надо помнить при переходе с Qt4.
— Модуль Qt4Gui разделён на Qt5Gui + Qt5Widgets. Сделано это для лучшей модульности кода. Например, QStandardItemModel теперь лежит в QtGui, и может использоваться как в QtWidgets, так и в QtQuick. А вот уже виджеты не будут подгружаться, если вы используете QtQuick/QML для GUI.
— Многопоточность частично вынесена в отдельный модуль QtConcurrent.
— Сигналы стали public методами, а не protected, как было ранее.
— По самим виджетам немного поменялись некоторые классы (например, по работе с шириной заголовков в QTreeView). Но это мелочи.
— Сложнее стало делать платформозависимые вещи с виджетами. Например, у виджета убрали метод winEvent, попутно внеся пару багов.
— qDebug, теперь макрос. Сделано это для того, чтобы можно было в обработчике использовать контекст, откуда было выведено сообщение (передаются __FILE__, __LINE__ и т.п.).

Но в целом, много хороших и удобных нововведений, о которых лучше читать блог разработчиков.
Re[8]: Возможна ли интеграция MSVS и Qt4?
От: AlexGin Беларусь  
Дата: 27.01.16 18:38
Оценка:
Здравствуйте, SaZ, Вы писали:

SaZ>Здравствуйте, AlexGin, Вы писали:


AG>>...

AG>>Попутный вопрос: значит на все контейнеры Qt (QVector, QList, etc.) можно свободно "забить" и применять вместо них STL контейнеры?

SaZ>Все Qt контейнеры (включая строки) поддерживают COW. Причём, потокобезопасно. А вот для STL контейнеров придётся значительно больше думать. В том числе при размещении элементов, для которых не реализован конструктор перемещения. Я пока сам не особо владею навыками использования конструктора перемещения.


SaZ>Но, главный аргумент в пользу Qt контейнеров для Qt приложений это то, что Qt использует свои контейнеры внутри своего фреймворка. Нужно вам, например, получить список дочерних классов — вам вернут QList< QObject * >. Нужно получить или передать список строк, берётся QStringList. Потом, есть замечательный класс QVariant, который не имеет STL аналогов. Придётся тащить буст.

Это мне напоминает ситуацию с MFC — там также есть свои контейнеры, которые используются в библиотеке классов, однако мне (если не требовелось что-то спицифичное, что потребует работы с мфсишными контейнерами) было удобнее работать с STL контейнерами. VARIANT — помню по технологии COM, похоже что в Qt используется та же идея универсального типа данных.

SaZ>Про контейнеры так же надо помнить, что есть различия. std::set хранит элементы в виде map, а QSet в виде хэш таблицы.

+100500

AG>>Ещё вопрос: насколько на сегодняшний день Qt поддерживает новые стандарты C++? (тот же C++11)


SaZ>С++ 11 поддерживается начиная с 5-й версии. Причём, если я не ошибаюсь, начиная с Qt 5.7 поддержка компиляторов С++03 будет или убрана совсем или получит статус deprecated.

SaZ>Реализован цикл for для всех Qt контейнеров (можно писать for ( auto text : stringList ) {...}. Активно пишутся конструкторы перемещения (за счёт их наличия значительно ускоряется работа со строками).
SaZ>Очень важная фича, это дополнительный синтаксис QObject::connect. Теперь сигналы и слоты передаются как указатели на методы, а не через строки, завёрнутые в макросы, и проверка совместимости сигнала и слота делается в compile-time, а не в runtime. Т.е. можно писать connect( button, &QPushButton::clicked, this, &MyWidget::onBtnClicked );, что выглядит намного лаконичнее (и лучше поддерживается всякими autocomplete утилитами, типа ReSharper'а).

SaZ>P.S. что на вскидку могу вспомнить, про нововведения в Qt5, которые надо помнить при переходе с Qt4.

SaZ>- Модуль Qt4Gui разделён на Qt5Gui + Qt5Widgets. Сделано это для лучшей модульности кода. Например, QStandardItemModel теперь лежит в QtGui, и может использоваться как в QtWidgets, так и в QtQuick. А вот уже виджеты не будут подгружаться, если вы используете QtQuick/QML для GUI.
SaZ>- Многопоточность частично вынесена в отдельный модуль QtConcurrent.
SaZ>- Сигналы стали public методами, а не protected, как было ранее.
SaZ>- По самим виджетам немного поменялись некоторые классы (например, по работе с шириной заголовков в QTreeView). Но это мелочи.
SaZ>- Сложнее стало делать платформозависимые вещи с виджетами. Например, у виджета убрали метод winEvent, попутно внеся пару багов.
SaZ>- qDebug, теперь макрос. Сделано это для того, чтобы можно было в обработчике использовать контекст, откуда было выведено сообщение (передаются __FILE__, __LINE__ и т.п.).
...интересно...

SaZ>Но в целом, много хороших и удобных нововведений, о которых лучше читать блог разработчиков.

Спасибо, уважаемый SaZ!
Огромное спасибо, земляк
Отредактировано 27.01.2016 18:42 AlexGin . Предыдущая версия .
Re[6]: Возможна ли интеграция MSVS и Qt4?
От: AlexGin Беларусь  
Дата: 27.01.16 18:58
Оценка:
Здравствуйте, уважаемый Igore, Вы писали:

I>Интеграция дизайнера форм для студии только в комерческой версии вроде. А так, использую Qt Designer(bin\designer.exe) + студия.

Но в дизайнере форм (Qt Designer) мне не удалось найти инструмента для генерации сигналов —
при нажатии пользователем кнопки в окне или при выборе пункта меню.
То есть — я ожидал что там будет удобный инструментарий для автоматической генерации кода сигнал/слот (для *.h и *.cpp файлов).
Однако, ИМХО, ничего такого в Qt Designer нет.
Очень похоже, что данные задачи нужно делать при помощи Qt Creator, даже если и проект правится в студии.

P.S. Пока решил работать всё-таки с Qt Creator, так как ожидал более приличную интеграцию пакета Qt с MSVS.
Отредактировано 27.01.2016 19:06 AlexGin . Предыдущая версия . Еще …
Отредактировано 27.01.2016 19:01 AlexGin . Предыдущая версия .
Re[7]: Возможна ли интеграция MSVS и Qt4?
От: LaptevVV Россия  
Дата: 27.01.16 20:09
Оценка: 6 (1)
AG>Ещё вопрос: насколько на сегодняшний день Qt поддерживает новые стандарты C++? (тот же C++11)
Это зависит от компилятора.
Если вы установите QtCreator c MinGW, то там, начиная с версии gcc 4.9, поддерживается С++11 полностью.
Компилятор Студии 2010 практически не поддерживает С++11 за исключением некоторых мелочей.
Рекомендую подружить Qt и студию 2012 (минимум) — там уже вся стандартная библиотека С++11.
А еще лучше — Студия 2013. Там уже и язык почти полностью реализован в стандарте С++11.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[8]: Возможна ли интеграция MSVS и Qt4?
От: LaptevVV Россия  
Дата: 27.01.16 20:14
Оценка: +2
SaZ>Про контейнеры так же надо помнить, что есть различия. std::set хранит элементы в виде map, а QSet в виде хэш таблицы.
В стандартной библиотеке есть set и map — это красно-черное дерево.
А есть unodered_set и unordered_map — это хеш-таблица.
Да еще микрософтовские hash_set и hash_map есть.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[5]: Удачная интеграция MSVS и Qt4!
От: AlexGin Беларусь  
Дата: 01.02.16 18:32
Оценка:
Здравствуйте, уважаемый DiPaolo, Вы писали:

DP>1) Например, в Windows при установке Qt Add-in появляется шорткат в Пуске "Qt 4.8.4 Command Prompt", который вызывает нужный батник для настройки конкретного окружения:


DP>
DP>%COMSPEC% /k "C:\apps\Qt\4.8.4\bin\qtvars.bat vsvars"
DP>


DP>В qtvars.bat прописано, в частности:

DP>
DP>echo Setting up a Qt environment...

DP>set QTDIR=C:\apps\Qt\4.8.4
DP>echo -- QTDIR set to C:\apps\Qt\4.8.4
DP>set PATH=C:\apps\Qt\4.8.4\bin;%PATH%
DP>echo -- Added C:\apps\Qt\4.8.4\bin to PATH
DP>set QMAKESPEC=win32-msvc2010
DP>echo -- QMAKESPEC set to "win32-msvc2010"
DP>


Огромное спасибо, уважаемый DiPaolo!
Я именно таким образом настроил конфигурацию с моими Qt-шками
Убрал всё из системных настроек PATH!
Теперь применяю отдельные бат-нички для каждой из конфигураций.
Отредактировано 01.02.2016 18:36 AlexGin . Предыдущая версия .
Re[7]: Возможна ли интеграция MSVS и Qt4?
От: SaZ  
Дата: 02.02.16 09:09
Оценка: 1 (1)
Здравствуйте, AlexGin, Вы писали:

AG>Здравствуйте, уважаемый Igore, Вы писали:


I>>Интеграция дизайнера форм для студии только в комерческой версии вроде. А так, использую Qt Designer(bin\designer.exe) + студия.

AG>Но в дизайнере форм (Qt Designer) мне не удалось найти инструмента для генерации сигналов —
AG>при нажатии пользователем кнопки в окне или при выборе пункта меню.
AG>То есть — я ожидал что там будет удобный инструментарий для автоматической генерации кода сигнал/слот (для *.h и *.cpp файлов).
AG>Однако, ИМХО, ничего такого в Qt Designer нет.
AG>Очень похоже, что данные задачи нужно делать при помощи Qt Creator, даже если и проект правится в студии.

AG>P.S. Пока решил работать всё-таки с Qt Creator, так как ожидал более приличную интеграцию пакета Qt с MSVS.


Мне кажется, что написать 3 строки кода — это не проблема. Лично я в дизайнере только расставляю контролы — всю логику уже руками делаю.

P.S. Меня ещё со времён универа раздражало, когда преподавали формошлёпство, и получалось, что студенты вообще не имели представления о том, что за код там генерирует редактор.
И я очень благодарен своему преподавателю по WinAPI, который заставлял нас руками делать весь GUI (с целью обучения), и благодарен Кириллу Суркову, который читал ООП на базе Дэлфи, при этом все лабораторные делались как консольные приложения. Никаких форм.
Re: Возможна ли интеграция MSVS и Qt4?
От: Honduras  
Дата: 06.03.16 15:37
Оценка:
Здравствуйте, AlexGin, Вы писали:

AG>Возможна ли интеграция MSVS и Qt4?


возможна — у меня на студии 2010 32 стоит — где скачал не помню.


А вот это куда пойдет — кто знает?

https://download.qt.io/official_releases/vsaddin/
qt-vs-addin-1.2.5.exe 22-Feb-2016 10:07 202M

и

https://visualstudiogallery.msdn.microsoft.com/c89ff880-8509-47a4-a262-e4fa07168408

одно и тоже? под какие qt, виндовс и студии это?
Re[2]: Возможна ли интеграция MSVS и Qt4?
От: SaZ  
Дата: 06.03.16 15:53
Оценка:
Здравствуйте, Honduras, Вы писали:

H>Здравствуйте, AlexGin, Вы писали:


AG>>Возможна ли интеграция MSVS и Qt4?


H>возможна — у меня на студии 2010 32 стоит — где скачал не помню.



H>А вот это куда пойдет — кто знает?


H>https://download.qt.io/official_releases/vsaddin/

H>qt-vs-addin-1.2.5.exe 22-Feb-2016 10:07 202M

H>и


H>https://visualstudiogallery.msdn.microsoft.com/c89ff880-8509-47a4-a262-e4fa07168408


H>одно и тоже? под какие qt, виндовс и студии это?


Который в репозитории майкрософта — это собранный из официальных исходников аддон. Но собранный энтузиастами.
Оба — только под Qt5 и старше
Re[2]: Возможна ли интеграция MSVS и Qt4?
От: AlexGin Беларусь  
Дата: 07.03.16 10:45
Оценка:
Здравствуйте, Honduras, Вы писали:

H>Здравствуйте, AlexGin, Вы писали:


AG>>Возможна ли интеграция MSVS и Qt4?


H>возможна — у меня на студии 2010 32 стоит — где скачал не помню.

Уже полтора месяца, как разобрался в этом вопросе
Теперь я использую:
Qt 4.8.7 под студию 2010
Qt 5.5.1 под студию 2013

H>А вот это куда пойдет — кто знает?


H>https://download.qt.io/official_releases/vsaddin/

H>qt-vs-addin-1.2.5.exe 22-Feb-2016 10:07 202M

qt-vs-addin-1.2.5.exe — стыкует студию с Qt5

Всё скачивал отсюда:
https://download.qt.io/official_releases/qt
Re[3]: Возможна ли интеграция MSVS и Qt4?
От: Honduras  
Дата: 09.03.16 11:02
Оценка:
я историю загрузок посмотрел — помимо адина, еще прекомпилированное qt для студии скачивал.

https://download.qt.io/archive/qt/4.8/4.8.1/qt-win-opensource-4.8.1-vs2010.exe
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.