Доброго времени суток!
Надеюсь автор данной темы меня простит, я напишу в его теме, чтобы новую не создавать. У меня вопрос, на который достаточно ответить несколькими постами и оффтоп в этой теме прекратится, и форум не так загрязнится. Вопрос про Qt.
Будем считать меня начинающим программистом. В данное время я выбираю для себя язык программирования. В принципе язык выбран - это С, сейчас думаю в какую сторону степи С подасться...
Вот наткнулся на Qt. На Вики написано "Qt (произносится «кьют») — кросс-платформенный инструментарий разработки ПО на языке программирования C++". И в этой же статье написано "Отличительная особенность Qt от других библиотек — использование Meta Object Compiler (MOC) — предварительной системы обработки исходного кода (в общем-то, Qt — это библиотека не для чистого C++, а для его особого наречия, с которого и «переводит» MOC для последующей компиляции любым стандартным C++ компилятором)."
1) Т.е. не понятно, что же такое Qt? Насколько оно близко к С++, смогу ли я после программирования на Qt перейти на С++?
2) Не совсем понятно насколько этот язык универсальный... На нём можно решать разные задачи? От создания СУБД до игр и астрономических расчётов...
3) Действительно ли Qt кростлатформенный? Т.е. не возникает проблем с компиляцией одной и тойже программы под Linux и Windows? Или же все таки приходится изменять программу при компиляции под другую ось?
P.S. Ещё раз прошу прощения у автора темы за свой беспредел.
Что такое Qt? (отрезано от `QT'.)
Модератор: Модераторы разделов
-
Denjs
- Сообщения: 1685
- ОС: SuSe 10.2
Re: Что такое Qt?
2 Mattic: отчечаю с надеждой на модераторов отрежущих это в отдельный топик.
Это и есть C++ с некоторым расширением - в классах появляется дополнительные секции SIGNALS и SLOTS.
и некоторые доп инструкции(?). Отличия минимальные, но позволяют легко делать то что вы в чистом С++ будете делать с большим геморроем - например связывание объектов с помощью механизма "сигнал-слот".
Исходник на C++\QT с помощью MOC конвертируется в С++ исходник ориентированный на конкретный С++ компилятор и потом уже компилится.
А писать можно все что угодно. Классов всяких дофига практически под любую задачу.
Из наиболее известных софтин могу указать на браузер Opera - написан на QT.
Проблем с компиляцией не возникнет если не будете использовать API конкретной ОС. Не будете использовать WinAPI например - проблем не будет) Но ОС-зависимый API бывает нужен в очень редких случаях (например мне встретился единственный такой случай - когда писал доступ к последовательным портам).
Перейти на "чистый" С++ и другие библиотеки всегда сможете, но вам не захочется, поверьте мне.
ЗЫ: надеюсь модераторы вырежут эти 2 поста в отдельный топик)))
Это и есть C++ с некоторым расширением - в классах появляется дополнительные секции SIGNALS и SLOTS.
и некоторые доп инструкции(?). Отличия минимальные, но позволяют легко делать то что вы в чистом С++ будете делать с большим геморроем - например связывание объектов с помощью механизма "сигнал-слот".
Исходник на C++\QT с помощью MOC конвертируется в С++ исходник ориентированный на конкретный С++ компилятор и потом уже компилится.
А писать можно все что угодно. Классов всяких дофига практически под любую задачу.
Из наиболее известных софтин могу указать на браузер Opera - написан на QT.
Проблем с компиляцией не возникнет если не будете использовать API конкретной ОС. Не будете использовать WinAPI например - проблем не будет) Но ОС-зависимый API бывает нужен в очень редких случаях (например мне встретился единственный такой случай - когда писал доступ к последовательным портам).
Перейти на "чистый" С++ и другие библиотеки всегда сможете, но вам не захочется, поверьте мне.
ЗЫ: надеюсь модераторы вырежут эти 2 поста в отдельный топик)))
QDroid - Среда исполнения и фреймворк для QtScript.
OTPD - Открытые драйвера промышленных принтеров чеков и этикеток (кроссплатформенная подсистема печати).
OTPD - Открытые драйвера промышленных принтеров чеков и этикеток (кроссплатформенная подсистема печати).
Спасибо сказали:
-
ploop
- Сообщения: 40
Re: Что такое Qt?
На это одно могу ответить - я проект редактирую на работе (win XP), и дома (Kubuntu). Проблем ни каких. Достаточно очистить проект от уже скомпилированных объектных файлов. А уж чтобы разово собрать под дргую ОС - вообще просто.3) Действительно ли Qt кростлатформенный? Т.е. не возникает проблем с компиляцией одной и тойже программы под Linux и Windows? Или же все таки приходится изменять программу при компиляции под другую ось?
Это точно. Поверьте, очень редко придётся обращатся к API конкретной ОС. И даже в этом случае можно разрулить код директивами компилятора.Не будете использовать WinAPI например - проблем не будет)
Спасибо сказали:
-
Portnov
- Модератор
- Сообщения: 1786
- Статус: Матёрый линуксоид
- ОС: Debian testing/unstable
Re: Что такое Qt?
i Уведомление от модератора
У нас правило: одна тема - один вопрос. Отрезаю.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
-
Mattic
- Сообщения: 16
- ОС: Ubuntu 8.04
Re: Что такое Qt?
Всем спасибо за ответы! И отдельное спасибо за оперативность!
Ну сейчас-то понятное дело для себя программить буду, а может когда-нибудь возьмут на работу программистом... и придется на чистом С++ писать.
Вообщем я тут выбирал между С++ и С#. В С# пишут, что на нем обеспечивается кроссплатформенность, но на данный момент она большей частью только кроссплатформенность среди версий Винды. А настоящая кроссплатформенность - это Qt
Пойду литературу искать, да разбираться понемногу. Пока цель - написать за полгода простенькую систему учёта заявок с БД, сетью и паролями. Времени так много, потому что еще на работе много чему надо научиться по обслуживанию компьютерное техники.
-
Nymin
- Сообщения: 1095
- Статус: -
- ОС: GNU/Linux
Re: Что такое Qt?
GTK тоже кроссплатформенна
-
ploop
- Сообщения: 40
Re: Что такое Qt?
В С# пишут, что на нем обеспечивается кроссплатформенность, но на данный момент она большей частью только кроссплатформенность среди версий Винды. А настоящая кроссплатформенность - это Qt
Это немного разные вещи. Есть кроссплатформенность на уровне исполняемого кода (программу можно запустить под другой ОС - тот же дотнет и C#), а есть на уровне исходников. Получается, перекомпилируешь программу под другую ОС - и всё работает. ИМХО это лучший вариант. Этим меня Qt и прельстил
-
Denjs
- Сообщения: 1685
- ОС: SuSe 10.2
Re: Что такое Qt?
имхо, сказки сивого мерина балмера.
об этом и речь. имхо, в плане запуска бинарников, в wine пока больше "кроссплатформенности" обеспечивается.но на данный момент она большей частью только кроссплатформенность среди версий Винды.
А настоящая кроссплатформенность - это Qt![]()
![]()
Пойду литературу искать, да разбираться понемногу. Пока цель - написать за полгода простенькую систему учёта заявок с БД, сетью и паролями. Времени так много, потому что еще на работе много чему надо научиться по обслуживанию компьютерное техники.
Пишите письма если что)
А книжек всего 2 или 3. (Помимо встроенной подсистемы помощи - assistant), но больше и не надо наверное.
две книги уже пережили 2 переиздания.
одна по верссии QT3, потом по QT4 - Макс Шлее - "QT4 :профессиональное программирование на C++"
другая - Бланшет Саммерфилд "QT4: программирование GUI на С++".
Есть ещё что-то от Чеботарева - "Библиотека Qt 4. Создание прикладных приложений в среде Linux. Профессиональная работа " - но не читал к сожалению. (PS: если кто отрецензирует в данном топике - буду благодарен)
но на самом деле учите английский и читайте Assistant - программа подсистемы помощи для QT. (идет в комплекте с QT)
В Assistant в 5-10 раз больше всего чем в книжках. Книги в принципе на половину состоят из отрывочного перевода Assistant-а и пережевывания некоторых моментов. Книжки можно считать "введением в QT" что бы потом не пугаться Assistant-a ^_^ :: на первые три-пять недель ковыряния и определения того что тут вообще есть и настройки направлений "куда рыть если что" - хватит. Я вот их уже практически год не трогаю - лежат на полке как экспонаты - ассистента за глаза хватает.)))
-
RasenHerz
- Сообщения: 1341
- ОС: Arch Linux amd64
Re: Что такое Qt?
про Assistant хорошо подмечено. Сам читал первые две книги, которые назвал Denjs и, имхо, скажу точно одно - поймите что-такое модель сигнал/слот - все остальное можно найти в Assistant и на форуме Qt (там встречаются очень дельные и интересные советы и решения).
P.S. я писал программы еще для .NET 2.0 на C# и скажу только одно - хваленая кроссплатформенность не более чем выдумка.
P.S. я писал программы еще для .NET 2.0 на C# и скажу только одно - хваленая кроссплатформенность не более чем выдумка.
-
VAA
- Сообщения: 224
- ОС: Deep Style / Slackware
Re: Что такое Qt?
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?
другая - Бланшет Саммерфилд "QT4: программирование GUI на С++".
Есть такая у меня. Много полезного можно почерпнуть, но тупо следовать рекомендациям тоже не стОит. А на счет Assistant - правильно подметили, очень полезная вещь! При том в Creator встроена - прям в коде можно глянуть, что не понятно...
-
Mattic
- Сообщения: 16
- ОС: Ubuntu 8.04
Re: Что такое Qt?
Господа, а форум по Qt4 есть специализированный на русском?
Гугл толком ничего не дает, да и я смотрю большинство вопросов по Qt в этой ветке пишется. У меня возникло несколько глупых проблем, которые наверняка есть на форумах.
Гугл толком ничего не дает, да и я смотрю большинство вопросов по Qt в этой ветке пишется. У меня возникло несколько глупых проблем, которые наверняка есть на форумах.
-
agentprog
- Сообщения: 362
- Статус: Ad Astra per aspera
- ОС: openSUSE 11.4, Arch
-
Mattic
- Сообщения: 16
- ОС: Ubuntu 8.04