LINUX.ORG.RU

Изучение Qt

 ,


0

1

Начинаю изучать Qt. Qt-программист со справкой сказал открывать assistent и начинать читать geting start, сказал что есть даже на русском. Я прочитал, написал (скопирастил) программу notepad. Русского не нашёл.

До этого пробовал читать Шлее, но мне не понравилось, поскольку показалось что мало практики.

Вопрос – что читать, как изучать? Составьте мне план подготовки как космонавтам (ну или астронафтам).

Спасибо.

Ответ на: комментарий от anonymous

У меня нет задач. И я не могу решить задачу, поскольку не обладаю инструментами для её решения. Например, сделать тетрис. Я понимаю что для этого нужно создать canvas и попиксельно на нём всё отрисовать (а может есть какие-то независимые пиксели, как в android), но про это я не нашёл информации в assistent. Я думаю к таким задачам должны плавно вводить с простых задач, на которых можно получить уверенность в том, что ты умеешь хоть как-то программировать на qt.

Тем не менее, спасибо за ответ, анонимус.

jhonathan
() автор топика

Судя по вопросам, Вам для начала стоит Павловскую почитать. А потом таки Макса, лучше чем Макс всё равно ничего нету.

erfea ★★★★★
()

Понятно. Еще один прется в айтишечку не по призванию, а потому что модно.

Ты уже пришел на водопой. Пей, если можешь, или уходи.

anonymous
()
Ответ на: комментарий от erfea

А какую Павловскую? Не эту: «Триметазидина МФ на длительность и дисперсию интервала Q-T у пациентов с персистирующей формой фибрилляции предсердий / Е. Павловская,»? Не нашёл ничего.

jhonathan
() автор топика
Ответ на: комментарий от erfea

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

anonymous
()
Ответ на: комментарий от jhonathan

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

anonymous
()

Шлее, но мне не понравилось, поскольку показалось что мало практики.

Но всё равно больше, чем сейчас. Начни хоть с чего-нибудь. Для тетриса можешь переопределить метод paintEvent и в нём рисовать при помощи класса QPainter. Тут смотри.

ox55ff ★★★★★
()

Qt - это всего лишь еще один С++ фреймворк. Там особо нечего учить. Надо брать и решать конкретную задачу, по пути гугля как это можно сделать в культях. Для этого достаточно SO и официальной документации с примерами.

  1. Если примерно набросать план, то начинать надо с самых основ Qt Core и читать все подряд по ссылкам. Особенно Object Model, Object Trees & Ownership и Signals & Slots. Надо знать и понимать, как Qt объекты организованы в деревья, как они создаются и удаляются, как они коннектятся через сигналы/слоты и т.д.

  2. Изучить Qt контейнеры (QString, QList, QMap и т.д.) Почитать справку по всем этим классам по отдельности.

  3. Прочитать про Meta-Object Compiler и Qt Resource System, чтобы было понимание, как работают дополнительные Qt кодогенераторы поверх стандартного С++.

  4. Потом уже можно переходить к гуйне. Есть два варианта: нативные Qt Widgets для десктопа или ненативный мобайл-лайк QML. Виджеты проще, с них лучше и начать. Опять же, открывай Qt Widgets и читай все по ссылкам. Как минимум нужно иметь представление о базовом QWidget, главном окне, базовом наборе виджетов, лейаутах и евентах.

  5. Далее изучай примеры на Qt Widgets до полного просветления. Все используемые классы и методы ищи в документации по мере освоения. Зубрить там ничего не нужно, важно уметь искать информацию на лету.

Если не можешь в английский, тогда тебе будет тяжко. Без базового английского у тебя не шибко много вариантов - или читай того же Шлее, или ковыряй аналогичные разделы на русском в устаревшей документации по Qt 4, благо в Qt 5 особо ничего не поменялось.

archie
()
Последнее исправление: archie (всего исправлений: 1)
Ответ на: комментарий от ox55ff

Для тетриса можешь переопределить метод paintEvent и в нём рисовать при помощи класса QPainter.

Или как вариант можно использовать Graphics View Framework. Там все графические примитивы представлены в виде Qt объектов. Но канвас попроще и тупее, да.

archie
()

Если с C++ у тебя вопросов нету, то читай Шлее. Для старта работы с Qt отличная книга. Далее официальная документация, она подробная и содержит описание большинства вопросов.

rumgot ★★★★★
()

А что именно сподвигло тебя к изучению Qt?

  1. Если хочешь запилить какую-то фичу в интересующем тебя опенсорсном проекте, то бери его код, компилируй, разбирайся как чего устроено, попутно читай справку Qt по используемым вещам. Если проблемы с английским, то можно пользоваться онлайн-переводчиком, хоть даже всю веб-страницу переводить (в этом плане doc.qt.io гораздо удобнее ассистента), но всегда пытайся сначала прочитать оригинал, и только потом перевод

  2. Если есть идея сделать какой-то свой проект и понадобился фреймворк для гуя, то начинай с любого example-проекта из Qt или вообще с заготовки, которую qtcreator автоматом создает. Сначала нужно решить, какой именно нужен гуй - на виджетах или QML. Дальше двигаешься небольшими шагами и читаешь справку по всему, с чем сталкиваешься, и как в п.1

  3. Если нужна строчка для резюме, то выбираешь п.1 или п.2 в зависимости от того, чем занимается компания, куда хочешь устроиться

annulen ★★★★★
()
Ответ на: комментарий от archie

Если не можешь в английский, тогда тебе будет тяжко.

Учить английский сейчас - пустая трата времени. Спасибо Яндексу (все успели попробовать перевод роликов в режиме реального времени?).

anonymous
()
Ответ на: комментарий от anonymous

Ну если так думать то и культи с крестами учить не надо. Скоро AI программировать будет.

anonymous
()
Ответ на: комментарий от archie

Спасибо за ответ!

В английский не очень сложно – открываю переводчик (если удобнее, то словарь) и читаю, разбирая слова, которые не могу перевести.

Спасибо за план, я посмотрел, он примерно похож на то, как изложен материл у Шлее. Сейчас Шлее читать и начал.

jhonathan
() автор топика
Ответ на: комментарий от archie

Хочу плавно дойти к кавасу и graphics view, сначала освоив основные инструменты, а не переть к ним сломя голову, без знания основ.

jhonathan
() автор топика

Составьте мне план подготовки как космонавтам (ну или астронафтам).

Помогите космонавту

anonymous
()
Ответ на: комментарий от annulen

Сподвигло желание понять как работают gui, я думаю что это всем начинающим программистам интересно.

Я в детстве думал что программисты программируют каждый писксель, который выводится на экран. Какого же было моё неодобрение, когда я увидел что вывести на экран целый виджет может быть даже проще отрисовки одного пикселя.

Извините, это так, просто вспомнил.

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

Спасибо за вопрос.

jhonathan
() автор топика
Ответ на: комментарий от jhonathan

Хочу плавно дойти к

Это так не работает. ФУНДАМЕНТ/БАЗУ/СТРОЙНУЮ КАРТИНУ формируют не учебники и курсы, а твой мозг. Сначала это разрозненные знания, все непонятно. Но постепенно ты узнаешь больше и мозг складывает это все в единую теорию. Человек, который учится по туториалам, статьям, обращению к документации познает больше и быстрее, чем человек, который ищет ТУ САМУЮ ОДНУ КНИГУ, КОТОРАЯ ДАСТ ФУНДАМЕНТ И ПЛАВНО ВСЕ ОБЪЯСНИТ.

Im_not_a_robot ★★★★★
()
Ответ на: комментарий от Im_not_a_robot

Я не согласен, сколько не читал туториалов по регулярным выражениям, помогла только книга(«regular expressions»), с си, и вообще со всем моим опытом, тоже самое. Только по glsl был неплохой туториал.

jhonathan
() автор топика

сказал открывать assistent и начинать читать

все правильно сказал, у Qt отличная документация, миллион примеров, все разжевано.. осталось только в рот положить прочитать.

ps это не отменяет того,что надо знать на хорошем уровне язык, на котором пишешь.

jo_b1ack ★★★★★
()
Последнее исправление: jo_b1ack (всего исправлений: 1)
Ответ на: комментарий от jhonathan

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

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

Такой подход иногда имеет смысл, и кастомные QWidget’ы позволяют так делать

annulen ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.