Qt за август
Jul. 21st, 2012 11:57 amКамрады, встала задача за августовский отпуск изучить Qt. Сложность в том,что на си++ я практически не писал, хотя и представляю себе что это такое.

Кто может посоветовать книги, методики и т.п. с чего начать
На Qt вообще ничего не писал, и даже не представляю себе что это (среду даже в глаза не видел). Подскажите с чего начать, что лучше почитать и т.п.
З.Ы. На си пишу постоянно, так что надеюсь это чутка поможет, хотя ООП раньше мне сильно сносило мозг.

Кто может посоветовать книги, методики и т.п. с чего начать
На Qt вообще ничего не писал, и даже не представляю себе что это (среду даже в глаза не видел). Подскажите с чего начать, что лучше почитать и т.п.
З.Ы. На си пишу постоянно, так что надеюсь это чутка поможет, хотя ООП раньше мне сильно сносило мозг.
no subject
Date: 2012-07-21 08:25 am (UTC)no subject
Date: 2012-07-21 08:27 am (UTC)no subject
Date: 2012-07-21 08:29 am (UTC)Хотя пора бы, а то общаясь с дураками, сам уже деградировал дальше некуда :(
no subject
Date: 2012-07-21 09:08 am (UTC)если реализовать основную логику отдельно, с нормальным API (чтобы было без разницы, будет это потом консольная утилита, cgi-скрипт или Qt GUI), то потом прикручивать GUI можно через всякие построители форм, etc.
в Qt используется не только C++, но и макросы. на исходник натравливается специальная утилита, которая конвертирует макросы в компилируемый код.
ещё одна фича Qt - spacer'ы. общая задача - раскидать элементы в окне так, чтобы они адаптировали свой размер под размер окна. в Qt это решено оригинально. лучше сначала теоретически разобраться, в чем смысл, потом пробовать в Qt Designer'е.
в общем, я бы посоветовал так поступить:
1. не пытаться реализовывать GUI до основной логики (даже если это решатель квадратного уравнения, сначала нужно написать его без GUI с достаточно универсальным API).
2. Прочитать какую-нибудь книжку аля Qt Programming.
3. Ну и втыкать в примеры, туториалы, экспериментировать с Desinger'ом.
no subject
Date: 2012-07-21 09:17 am (UTC)А по сути те же приплюснутые си, только обернутые в ряд макросов. Это хорошо видно, когда кьют свои конструкции разворачивает во временных файлах. Сам изучал по первой же встреченной книжке по теме, там все понятно. Видал так же на хабре видеокурсы подробные.
no subject
Date: 2012-07-21 12:24 pm (UTC)Книжки которые есть на сей момент(Max Schlee, Qt 4 Professional programming with C++)
немного устарели, хотя дают базовые понятия про объектную систему Qt.
Там на самом деле отличная документация. Qt очень красив и логичен :)
no subject
Date: 2012-07-21 12:29 pm (UTC)Гугл :) Спроси у него «qt tutorial», например.
no subject
Date: 2012-07-21 08:00 pm (UTC)1. Сперва учить C++ основы
2. В С++ можно сразу опустить строки и STL - в QT этого нет, они это выбросили и правильно сделали
3. Потом покупается одна из присутствующих в магазинах двух книжек по Qt и читается.
За месяц вполне можно.
no subject
Date: 2012-07-21 08:49 pm (UTC)В Qt просто своя реализация контейнеров. Они очень похожи на стандартные STL-евские.
Мало того, все сделанно для совместимости. Qt-ые контейнеры имеют явные методы автоматического
преобразования к стандартным STL-евским.
Например:
QVector vector;
vector << 1.2 << 0.5 << 3.14;
std::vector stdvector = vector.toStdVector();
Они удобны и расширены очень многими полезняшками.
no subject
Date: 2012-07-21 08:53 pm (UTC)no subject
Date: 2012-07-22 09:31 am (UTC)no subject
Date: 2012-07-22 06:22 pm (UTC)Правда один хрен, я ни разу не программист.
no subject
Date: 2012-07-22 11:03 pm (UTC)no subject
Date: 2012-07-23 05:35 am (UTC)no subject
Date: 2012-07-23 06:55 am (UTC)Вот такие в нем ценности. Минусов - да, туча. Меня убивают расширения в виде макросов, которые не проверяются и в случае ошибки все повалится только в рантайме. Статически типизированный язык же ж, да
no subject
Date: 2012-07-23 10:45 am (UTC)Qt очень шустрый.
no subject
Date: 2012-07-23 11:02 am (UTC)no subject
Date: 2012-07-23 11:08 am (UTC)no subject
Date: 2012-07-23 11:22 am (UTC)Как минимум - нестандарт и отсутствие эксепшнов. Как максимум - необходимость тащить все qt в негуевые либы.
no subject
Date: 2012-07-23 11:25 am (UTC)Я писал на Qt под Win/Linux и вот тормоза были последним о чем вообще думали потому что проблем с этим не было.
no subject
Date: 2012-07-23 11:27 am (UTC)Но это лучший кросс-платформенный фреймворк на данный момент.
no subject
Date: 2012-07-23 11:31 am (UTC)no subject
Date: 2012-07-23 11:36 am (UTC)Проходили уже это, спасибо.
>>Как максимум - необходимость тащить все qt в негуевые либы.
Эм, QtCore все равно нужно в дополнение к QtGui. Так что мимо.
Все контейнеры в QtCore.
Вообщем я не фанатик. Есть действительно случаи когда нужно
выбрать сторонние решения. Но не путайте человека, на этапе изучения
это будет дикий оверхед.
no subject
Date: 2012-07-23 11:38 am (UTC)Прoсто поверьте мне, либо лучше всего проверьте.
no subject
Date: 2012-07-23 11:47 am (UTC)Понятно. Чукча не читатель. Внезапно, когда потребуется бизнес-логика существующего приложения, но без гуя, придется тянуть все qt для консольного приложения/либы. Вот за такое убивать надо.
no subject
Date: 2012-07-23 11:52 am (UTC)no subject
Date: 2012-07-23 12:02 pm (UTC)Без GUI, ок. Остается QtCore для консольного приложения.
Если юзаете сеть +QtNetwork. Если DB надо из консольного уметь +QtSql. И так далее.
По моему все удобно и логично.
А можете статически собрать все. Нет проблем.
Мало того размер Qt библиотек вполне небольшой.
Экономить 10-20 мегабайт смысла нет.
no subject
Date: 2012-07-24 12:42 pm (UTC)До этого писал простенькие GUI на WinAPI но это очень неэффективно.
Имхо лучше сначала немного поупражняться в ООП перед тем как лезть в Qt. Знание С тут не очень поможет.
Хочу спросить знающих про Qt.
Есть ли в библиотеке возможность отказаться от рантайма или все равно прийдется таскать за собой?
И совсем провокационный вопрос. Есть ли примеры коммерческих приложений написанных на Qt?
no subject
Date: 2012-07-27 08:02 am (UTC)