Что такое Qt? (отрезано от `QT'.)

Модератор: Модераторы разделов

Mattic
Сообщения: 16
ОС: Ubuntu 8.04

Что такое Qt?

Сообщение Mattic »

Доброго времени суток!
Надеюсь автор данной темы меня простит, я напишу в его теме, чтобы новую не создавать. У меня вопрос, на который достаточно ответить несколькими постами и оффтоп в этой теме прекратится, и форум не так загрязнится. Вопрос про Qt.
Будем считать меня начинающим программистом. В данное время я выбираю для себя язык программирования. В принципе язык выбран - это С, сейчас думаю в какую сторону степи С подасться...
Вот наткнулся на Qt. На Вики написано "Qt (произносится «кьют») — кросс-платформенный инструментарий разработки ПО на языке программирования C++". И в этой же статье написано "Отличительная особенность Qt от других библиотек — использование Meta Object Compiler (MOC) — предварительной системы обработки исходного кода (в общем-то, Qt — это библиотека не для чистого C++, а для его особого наречия, с которого и «переводит» MOC для последующей компиляции любым стандартным C++ компилятором)."
1) Т.е. не понятно, что же такое Qt? Насколько оно близко к С++, смогу ли я после программирования на Qt перейти на С++?
2) Не совсем понятно насколько этот язык универсальный... На нём можно решать разные задачи? От создания СУБД до игр и астрономических расчётов...
3) Действительно ли Qt кростлатформенный? Т.е. не возникает проблем с компиляцией одной и тойже программы под Linux и Windows? Или же все таки приходится изменять программу при компиляции под другую ось?
P.S. Ещё раз прошу прощения у автора темы за свой беспредел.
Спасибо сказали:
Аватара пользователя
Denjs
Сообщения: 1685
ОС: SuSe 10.2

Re: Что такое Qt?

Сообщение Denjs »

2 Mattic: отчечаю с надеждой на модераторов отрежущих это в отдельный топик.

Это и есть C++ с некоторым расширением - в классах появляется дополнительные секции SIGNALS и SLOTS.
и некоторые доп инструкции(?). Отличия минимальные, но позволяют легко делать то что вы в чистом С++ будете делать с большим геморроем - например связывание объектов с помощью механизма "сигнал-слот".

Исходник на C++\QT с помощью MOC конвертируется в С++ исходник ориентированный на конкретный С++ компилятор и потом уже компилится.

А писать можно все что угодно. Классов всяких дофига практически под любую задачу.
Из наиболее известных софтин могу указать на браузер Opera - написан на QT.

Проблем с компиляцией не возникнет если не будете использовать API конкретной ОС. Не будете использовать WinAPI например - проблем не будет) Но ОС-зависимый API бывает нужен в очень редких случаях (например мне встретился единственный такой случай - когда писал доступ к последовательным портам).

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

ЗЫ: надеюсь модераторы вырежут эти 2 поста в отдельный топик)))
QDroid - Среда исполнения и фреймворк для QtScript.
OTPD - Открытые драйвера промышленных принтеров чеков и этикеток (кроссплатформенная подсистема печати).
Спасибо сказали:
ploop
Сообщения: 40

Re: Что такое Qt?

Сообщение ploop »

3) Действительно ли Qt кростлатформенный? Т.е. не возникает проблем с компиляцией одной и тойже программы под Linux и Windows? Или же все таки приходится изменять программу при компиляции под другую ось?
На это одно могу ответить - я проект редактирую на работе (win XP), и дома (Kubuntu). Проблем ни каких. Достаточно очистить проект от уже скомпилированных объектных файлов. А уж чтобы разово собрать под дргую ОС - вообще просто.

Не будете использовать WinAPI например - проблем не будет)
Это точно. Поверьте, очень редко придётся обращатся к API конкретной ОС. И даже в этом случае можно разрулить код директивами компилятора.
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: Что такое Qt?

Сообщение Portnov »

iУведомление от модератора

У нас правило: одна тема - один вопрос. Отрезаю.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
Mattic
Сообщения: 16
ОС: Ubuntu 8.04

Re: Что такое Qt?

Сообщение Mattic »

Denjs писал(а):
22.08.2009 20:02
Перейти на "чистый" С++ и другие библиотеки всегда сможете, но вам не захочется, поверьте мне.

Всем спасибо за ответы! И отдельное спасибо за оперативность!
Ну сейчас-то понятное дело для себя программить буду, а может когда-нибудь возьмут на работу программистом... и придется на чистом С++ писать.
Вообщем я тут выбирал между С++ и С#. В С# пишут, что на нем обеспечивается кроссплатформенность, но на данный момент она большей частью только кроссплатформенность среди версий Винды. А настоящая кроссплатформенность - это Qt :rolleyes: :rolleyes: :rolleyes:
Пойду литературу искать, да разбираться понемногу. Пока цель - написать за полгода простенькую систему учёта заявок с БД, сетью и паролями. Времени так много, потому что еще на работе много чему надо научиться по обслуживанию компьютерное техники.
Спасибо сказали:
Nymin
Сообщения: 1095
Статус: -
ОС: GNU/Linux

Re: Что такое Qt?

Сообщение Nymin »

GTK тоже кроссплатформенна
Спасибо сказали:
ploop
Сообщения: 40

Re: Что такое Qt?

Сообщение ploop »

В С# пишут, что на нем обеспечивается кроссплатформенность, но на данный момент она большей частью только кроссплатформенность среди версий Винды. А настоящая кроссплатформенность - это Qt

Это немного разные вещи. Есть кроссплатформенность на уровне исполняемого кода (программу можно запустить под другой ОС - тот же дотнет и C#), а есть на уровне исходников. Получается, перекомпилируешь программу под другую ОС - и всё работает. ИМХО это лучший вариант. Этим меня Qt и прельстил :)
Спасибо сказали:
Аватара пользователя
Denjs
Сообщения: 1685
ОС: SuSe 10.2

Re: Что такое Qt?

Сообщение Denjs »

Mattic писал(а):
23.08.2009 13:38
Вообщем я тут выбирал между С++ и С#. В С# пишут, что на нем обеспечивается кроссплатформенность,
имхо, сказки сивого мерина балмера.
но на данный момент она большей частью только кроссплатформенность среди версий Винды.
об этом и речь. имхо, в плане запуска бинарников, в wine пока больше "кроссплатформенности" обеспечивается.
А настоящая кроссплатформенность - это Qt :rolleyes: :rolleyes: :rolleyes:
:drinks: (а теперь ещё и нокия-телефоны помимо просто наладонников)
Пойду литературу искать, да разбираться понемногу. Пока цель - написать за полгода простенькую систему учёта заявок с БД, сетью и паролями. Времени так много, потому что еще на работе много чему надо научиться по обслуживанию компьютерное техники.

Пишите письма если что)

А книжек всего 2 или 3. (Помимо встроенной подсистемы помощи - assistant), но больше и не надо наверное.

две книги уже пережили 2 переиздания.
одна по верссии QT3, потом по QT4 - Макс Шлее - "QT4 :профессиональное программирование на C++"
другая - Бланшет Саммерфилд "QT4: программирование GUI на С++".
Есть ещё что-то от Чеботарева - "Библиотека Qt 4. Создание прикладных приложений в среде Linux. Профессиональная работа " - но не читал к сожалению. (PS: если кто отрецензирует в данном топике - буду благодарен)
но на самом деле учите английский и читайте Assistant - программа подсистемы помощи для QT. (идет в комплекте с QT)
В Assistant в 5-10 раз больше всего чем в книжках. Книги в принципе на половину состоят из отрывочного перевода Assistant-а и пережевывания некоторых моментов. Книжки можно считать "введением в QT" что бы потом не пугаться Assistant-a ^_^ :: на первые три-пять недель ковыряния и определения того что тут вообще есть и настройки направлений "куда рыть если что" - хватит. Я вот их уже практически год не трогаю - лежат на полке как экспонаты - ассистента за глаза хватает.)))
QDroid - Среда исполнения и фреймворк для QtScript.
OTPD - Открытые драйвера промышленных принтеров чеков и этикеток (кроссплатформенная подсистема печати).
Спасибо сказали:
Аватара пользователя
RasenHerz
Сообщения: 1341
ОС: Arch Linux amd64

Re: Что такое Qt?

Сообщение RasenHerz »

про Assistant хорошо подмечено. Сам читал первые две книги, которые назвал Denjs и, имхо, скажу точно одно - поймите что-такое модель сигнал/слот - все остальное можно найти в Assistant и на форуме Qt (там встречаются очень дельные и интересные советы и решения).

P.S. я писал программы еще для .NET 2.0 на C# и скажу только одно - хваленая кроссплатформенность не более чем выдумка.
Спасибо сказали:
Аватара пользователя
VAA
Сообщения: 224
ОС: Deep Style / Slackware

Re: Что такое Qt?

Сообщение VAA »

RasenHerz писал(а):
23.08.2009 17:00
про Assistant хорошо подмечено. Сам читал первые две книги, которые назвал Denjs и, имхо, скажу точно одно - поймите что-такое модель сигнал/слот - все остальное можно найти в Assistant и на форуме Qt (там встречаются очень дельные и интересные советы и решения).

P.S. я писал программы еще для .NET 2.0 на C# и скажу только одно - хваленая кроссплатформенность не более чем выдумка.


Qt - это не язык, а библиотека подпрограмм и функций, реализованных для программирования прежде всего объектов для графического событийного интерфейса с пользователем, но не только.
Библиотека не только кросплатформенная - линукс, виндовс и мак, но и "кроссязыковая". Сейчас программирую на KBASIC - аналог виндового Visual Basic (имеющий режим совместимости с MS VB и QBASIC), благодаря кроссплатформенности Qt работающий одинаково хорошо под линукс, виндовс и мак (мак - не проверял :) ).

Так что осваивать Qt стоит! :)
Registered Linux user number 436365
Спасибо сказали:
ploop
Сообщения: 40

Re: Что такое Qt?

Сообщение ploop »

другая - Бланшет Саммерфилд "QT4: программирование GUI на С++".

Есть такая у меня. Много полезного можно почерпнуть, но тупо следовать рекомендациям тоже не стОит. А на счет Assistant - правильно подметили, очень полезная вещь! При том в Creator встроена - прям в коде можно глянуть, что не понятно...
Спасибо сказали:
Mattic
Сообщения: 16
ОС: Ubuntu 8.04

Re: Что такое Qt?

Сообщение Mattic »

Господа, а форум по Qt4 есть специализированный на русском?
Гугл толком ничего не дает, да и я смотрю большинство вопросов по Qt в этой ветке пишется. У меня возникло несколько глупых проблем, которые наверняка есть на форумах.
Спасибо сказали:
Аватара пользователя
agentprog
Сообщения: 362
Статус: Ad Astra per aspera
ОС: openSUSE 11.4, Arch

Re: Что такое Qt?

Сообщение agentprog »

гугл, запрос "форум по qt", первая ссылка
No problems - just solutions!
Спасибо сказали:
Mattic
Сообщения: 16
ОС: Ubuntu 8.04

Re: Что такое Qt?

Сообщение Mattic »

agentprog писал(а):
02.09.2009 16:18
гугл, запрос "форум по qt", первая ссылка

Спасибо! Искал по запросам типа "форум qt4"... Плоховато я еще пользуюсь Гуглом...
Спасибо сказали: