Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.56/32: Рейтинг темы: голосов - 32, средняя оценка - 4.56
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518

Qt возможности

27.12.2014, 01:06. Показов 6787. Ответов 46
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Гуру, помогите новичку на С++!

Можете "в двух словах" рассказать о Qt (кросплатформенный С++)?

1) Лицензии. Могу ли я на бесплатном Qt писать платные программы не открывая код?
2) Библиотеки. Нужно ли таскать за программой лишние dll или все встраивается в ехе-файл? Сильно ли увеличивается размер?
3) Компиляторы. Можно ли "выдрать" из Qt только нужное (сокеты, потоки) и использовать их в MinGW? Можно ли "частично" использовать Qt, а частично WinAPI (например цвета в консоли, работа со звуком)
4) Платформы. Есть Qt для андроида. Он совместим с Qt Windows?
5) Консоль. Можно ли писать программы не используя "окошек"?
6) Серверные решения. Имеет ли смысл? Например сделать сокет-сервер и положить на веб-сервер для множественных одновременных подключений. Или для этого лучше подойдут другие языки? (ява, питон)

(прежде чем убивать кучу время на практически новый для меня фреймворк, хотелось бы знать что делаю это не зря)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.12.2014, 01:06
Ответы с готовыми решениями:

Ноутбук Асус Нет возможности разгона ОЗУ, а также в БИОС нет возможности отключения интегрированной графики
Здравствуйте! Ноутбук Асус м570дд. Стоит одноранговая память объемом 8гб от микрон. Чипсет x570dd. Биос последней версии 302. Нигде нет...

Возможности c++
Всем привет! У меня 4 вопроса: 1)Нужно ли учить c++? 2)Возможности c++(то есть в что можно делать с помощью c++) 3)Можно ли с...

Возможности WP
Всем привет! Поставили такую задачу, нужно сделать сайт для группы в университете. возможности: 1. онлайн-чат 2. отдельная страница...

46
9037 / 2937 / 494
Регистрация: 05.10.2013
Сообщений: 7,962
Записей в блоге: 216
27.12.2014, 10:13
Цитата Сообщение от Tester64 Посмотреть сообщение
1) Лицензии. Могу ли я на бесплатном Qt писать платные программы не открывая код?
Можете, но это будет нарушение лицензии. Правда, я не знаю какое наказание, если вы будете распространять своё приложение без исходников. Скорее всего - штраф. Возможно, фирма (владелец Qt) может подать в суд. Мне кажется, трудно привлечь к ответственности за такое деяние, так как сложно будет собрать доказательства (да и не выгодно ловить нарушителей). Таких дел, наверное, и не было никогда. Всё что я написал выше - это просто мои предположения

Рекомендую изучить информацию по этим ссылкам:
http://www.digia.com/ru/Qt/News/20082014/
http://www.qt.io/licensing/

В этой табличке можно посмотреть сколько стоит коммерческий Qt: http://www.qt.io/download/

2) Библиотеки. Нужно ли таскать за программой лишние dll или все встраивается в ехе-файл? Сильно ли увеличивается размер?
Возьмём, для примера, простейшее оконное приложение. Для того, чтобы приложение запускалось на другом компьютере, необходимо расположить рядом с exe следующие библиотеки:

icudt53.dll
icuin53.dll
icuuc53.dll
libgcc_s_dw2-1.dll
libstdc++-6.dll
libwinpthread-1.dll
Qt5Core.dll
Qt5Gui.dll
Qt5Widgets.dll
platforms/qwindows.dll

Суммарный вес 44 МБайта

А если дополнительные модули использовать, то количество dll возрастёт. Я на чистом компьютере запускаю и то что не хватает добавляю отсюда: c:\Qt\Qt5.4.0\5.4\mingw491_32\bin\

Можно собрать статически в один exe, но для этого нужно саму библиотеку Qt собрать статически (это занимает 2 часа) Тогда приложение будет весить 15 МБайт, а если сжать exe c помощью программы upx - будет весить 5.5 МБайт У меня есть инструкция: https://www.cyberforum.ru/blog... g2924.html

Добавлено через 3 минуты
Цитата Сообщение от Tester64 Посмотреть сообщение
Можно ли "частично" использовать Qt, а частично WinAPI (например цвета в консоли, работа со звуком)
Можно свободно использовать WinAPI

Цитата Сообщение от Tester64 Посмотреть сообщение
Консоль. Можно ли писать программы не используя "окошек"?
Создаёте пустой проект: "Other Project"->"Empty qmake Project": Первая консольная программа на C++ в среде Qt Creator

Либо можно создать: "Application"->"Qt Console Application". Тогда можно создавать сигнал/слот взаимодействие

На всякий случай, ещё такая инструкция: Первое оконное приложение на Qt (диалоговое окно)
1
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
27.12.2014, 11:04  [ТС]
Цитата Сообщение от Tester64 Посмотреть сообщение
6) Серверные решения. Имеет ли смысл? Например сделать сокет-сервер и положить на веб-сервер для множественных одновременных подключений. Или для этого лучше подойдут другие языки? (ява, питон)
Меня еще это интересует!

У меня есть "текущая" задача. На ней учусь писать на С++.
Сделать 2е небольшие программы. Обе консольные. Одна через WinAPI получает данные (бинарные буферы) на одном компе и рассылает через сокеты клиентской программе на других компах. Клиентские в консоли выводят полученное(обработав). Клиенты могут посылать серверу "управляющие команды"(двустороннее асинхронное общение). Часть отвечающая за работу с WinAPI и отображение в консоли успешно сделана в MinGW. А вот с сокетами и многопоточными серверами полная лажа... Примеров почти не нашел. А то что нашел под Qt (пример "чата").

В идеале хотел сделать 2е маленькие dll-ки. Клиент и сервер. И подключить их к старым программам. Всю логику сокетов и взаимодействия клиентов оставить в dll. И... не знаю на каком С++ писать! Уже нашел не меньше 4х "мультиплатформенных" сокетных компонент (poco, Qt, boost, ...). Но в основном без примеров. Уже совсем отчаялся и решил посмотреть в сторону Qt(там хоть какие-то примеры в поставке)...

На сегодня обе программы занимают от силы по 500 кб. Если добавить либы от Qt... Многократно увеличится?

По лицензиям... тоже довольно странно! Около 150$ в МЕСЯЦ! За поддержку? А через месяц еще 150 за "продление"?

И в идеале хотел сделать сервер-ретранслятор этих данных под линукс. Будет аналог не сильно загруженного веб-сервера (без окошек). Имеет смысл такое писать на Qt?
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
27.12.2014, 16:36
Цитата Сообщение от Tester64
1) Лицензии. Могу ли я на бесплатном Qt писать платные программы не открывая код?
Да.
Qt может распостраняться по лицензии LGPL, которая позволяет
сохранять исходники закрытыми при соблюдении некоторых условий.
В частности, вы должны динамически компоноваться с Qt.

Qt Licensing
https://qt-project.org/products/licensing

Adding LGPL v3 to Qt
http://blog.qt.digia.com/blog/... -v3-to-qt/

GNU (LGPL) 2.1
http://www.gnu.org/licenses/ol... l-2.1.html

ПЕРЕВОД НА РУССКИЙ ЯЗЫК СТАНДАРТНОЙ ОБЩЕСТВЕННОЙ ЛИЦЕНЗИИ ОГРАНИЧЕННОГО ПРИМЕНЕНИЯ.
http://jxself.org/translations/lgpl-2.1.ru.shtml

Ответы на вопросы о лицензиях GNU
http://www.gnu.org/licenses/gpl-faq.ru.html
5
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
27.12.2014, 17:10
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Можно собрать статически в один exe, но для этого нужно саму библиотеку Qt собрать статически (это занимает 2 часа) Тогда приложение будет весить 15 МБайт, а если сжать exe c помощью программы upx - будет весить 5.5 МБайт У меня есть инструкция:
Если использовании компилятора MSVC зависимостей меньше, и при сатитич.сборке экзешник около ~7...10 MБ.
Сжимать UPX нет особого смысла.
2
9037 / 2937 / 494
Регистрация: 05.10.2013
Сообщений: 7,962
Записей в блоге: 216
27.12.2014, 19:19
Цитата Сообщение от Tester64 Посмотреть сообщение
6) Серверные решения
Может вам пригодится этот пример: C++ Qt 70 Advanced Asynchronous QTcpServer with QThreadPool
1
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
27.12.2014, 23:02  [ТС]
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Может вам пригодится этот пример: C++ Qt 70 Advanced Asynchronous QTcpServer with QThreadPool
Команды, команды, команды и невнятная речь на заднем плане...
Меня больше интересует ответ на вопрос "ИМЕЕТ ЛИ СМЫСЛ?".
Можно ли сделать полноценный веб сервер на Qt? (у меня будет не веб, а сокетный, но смысл похожий. Не больше 10 клиентов, но возможно большой трафик).

Когда учил Делфи один приколист статью написал листов на 10 как написать работающий драйвер на Делфи под Windows. Вполне удачно его собрал в конце. И в конце приписал - "Делфи вообще-то не предназначен для написания драйверов. Просто я хотел доказать что на нем в принципе при большом желании можно написать все... Qt "предназначен" для серверных линуксовых решений??? Да/Нет/не особо...

Мне нужно написать решение ТОЛЬКО для сетевого общения двух программ. И предстоит ради этого найти и научиться работать в новой (для меня) технологии сокетов. Имеет ли смысл изучать для этого Qt? Или поискать другие подходы???

Позднее прийдется написать клиент и сервер еще и под андроид... "Плагином" в другую программу! C Qt (по идее) переписывать не прийдется. Но опять-же "имеет ли смысл"?
0
 Аватар для RazrFalcon
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
28.12.2014, 10:47
Цитата Сообщение от Tester64 Посмотреть сообщение
Можно ли сделать полноценный веб сервер на Qt?
Можно. Даже уже написан: http://phantomjs.org/
1
1443 / 1326 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
28.12.2014, 12:35
Цитата Сообщение от Tester64 Посмотреть сообщение
Меня больше интересует ответ на вопрос "ИМЕЕТ ЛИ СМЫСЛ?".
Если нет необходимости обрабатывать более 300 подключений, то вполне.

Цитата Сообщение от Tester64 Посмотреть сообщение
И предстоит ради этого найти и научиться работать в новой (для меня) технологии сокетов.
Какая новая технология сокетов? И под Linux и под Windows используются сокеты Беркли.

RazrFalcon, PhantomJS это "браузер", а не веб сервер.
1
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
29.12.2014, 01:22  [ТС]
Цитата Сообщение от Dmitriy_M Посмотреть сообщение
Какая новая технология сокетов?
Я просто с сокетам раньше ВООБЩЕ не работал. Ни в одном языке. Немного учился на Делфи, но нужной надежности не добился и отложил проект года на 3-4. Сейчас решил реанимировать проект, но на С++ (новом для меня языке - пол года мелкими темпами учусь).

Цитата Сообщение от Dmitriy_M Посмотреть сообщение
И под Linux и под Windows используются сокеты Беркли.
Погуглил... возможно подойдет... попробую!
Пол года назад кто-то тоже советовал Беркли. Но другой умник убедил меня что Беркли работает только под линукс. Я растроился (мечтал о мультиплатфроменном решении) и начал искать альтернативы... Добрался до Qt и его вполне оформленных классах сервера и клиента (вместо Беркли подобных процедурно-функциональных решений).
0
 Аватар для solar_wind
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
29.12.2014, 06:27
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Суммарный вес 44 МБайта
В Qt4 минимальный вес библиотек всего 11 МБайт

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

Добавлено через 1 минуту
Цитата Сообщение от Tester64 Посмотреть сообщение
3) Компиляторы. Можно ли "выдрать" из Qt только нужное (сокеты, потоки) и использовать их в MinGW? Можно ли "частично" использовать Qt, а частично WinAPI (например цвета в консоли, работа со звуком)
Выдрать из Qt вряд ли получится, а вот использовать в Qt WinAPI это пожалуйста.

Добавлено через 2 минуты
Цитата Сообщение от Tester64 Посмотреть сообщение
5) Консоль. Можно ли писать программы не используя "окошек"?
Можно.
3
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
29.12.2014, 07:27  [ТС]
Примерно понял! Спасибо!
Сначала пожалуй изучу Беркли... Хотя-бы внимательнее поищу примеры и изучу возможности других реализаций сокета (нашел примеры в архиве с boost).
11Мб - многовато для практически ПУСТОГО проекта! И не до конца уверен в портированости под андроид.
Qt оставлю на "запасной вариант".
0
9037 / 2937 / 494
Регистрация: 05.10.2013
Сообщений: 7,962
Записей в блоге: 216
29.12.2014, 09:31
Цитата Сообщение от Tester64 Посмотреть сообщение
11Мб - многовато для практически ПУСТОГО проекта!
Для современных компьютеров и ноутбуков такие веса в несколько десятков MБ не имеют никакого значения. Главное - это то, что вы получаете за эту плату: высокая скорость разработки, быстрота работы приложения, надёжность, отличная документация, наличие примеров и проектов с отрытым исходным кодом под GPL
0
1443 / 1326 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
29.12.2014, 10:30
Цитата Сообщение от solar_wind Посмотреть сообщение
Сокеты Беркли это конечно интересно для изучения технологии работы сокетов. Но для реальной работы уже несколько устаревшая и не очень удобная штука.
И давно они устарели? Если они устарели, то почему в веб серверах они используются?

Цитата Сообщение от 8Observer8 Посмотреть сообщение
Для современных компьютеров и ноутбуков такие веса в несколько десятков MБ не имеют никакого значения.
А для мобильных устройств это критично. ТС хочет и под Android что бы работало.
1
 Аватар для solar_wind
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
29.12.2014, 10:41
Dmitriy_M, Ну на пример под windows уже давно асинхронные сокеты применяются. Синхронные сокеты до сих пор часто используются восновном на линуксовых машинах.
0
1443 / 1326 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
29.12.2014, 11:03
Цитата Сообщение от solar_wind Посмотреть сообщение
Синхронные сокеты до сих пор часто используются восновном на линуксовых машинах.
Синхронные/асинхронные это вопрос архитектуры. Асинхронные сокеты, это неблокирующие сокеты(O_NONBLOCK) + epoll или select/poll.
0
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
29.12.2014, 11:43  [ТС]
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Для современных компьютеров и ноутбуков такие веса в несколько десятков MБ не имеют никакого значения. Главное - это то, что вы получаете за эту плату: высокая скорость разработки, быстрота работы приложения, надёжность, отличная документация, наличие примеров и проектов с отрытым исходным кодом под GPL
11Мб "минимум" против 1Мб максимум - чуствительная разница! Для андроида 11Мб - это уже ОЧЕНЬ много! Игрушки 3Д со сложной графикой редко больше 30-40Мб занимают, а тут только ради блока онлайн-синхронизации.

По поводу скорости разработки... Тоже не уверен! Работа с сокетами - это лишь первый "слой" моего протокола. Дальше мне предстоит нехило поработать над структурой пакетов, которыми нужно обмениваться. Компилятор под консоль собирает проект в 0.5Мб за 6-7 секунд. Причем на выходе получает одну dll, а не пакет на >11Мб. Сейчас учусь в codeblocks. Там - ничего лишнего! Даже отладчиком не пользуюсь - так раза в 1.5 быстрее. Я 3-4 года назад пробовал Qt - не самый шустрый редактор - требует мощный проц!

Цитата Сообщение от solar_wind Посмотреть сообщение
Ну на пример под windows уже давно асинхронные сокеты применяются. Синхронные сокеты до сих пор часто используются восновном на линуксовых машинах.
Можете обьяснить здесь подробнее? В чем разница? Это пока для меня - темный лес! Привык к классам в Делфи. Там на сервер несколько клиентов могли одновременно отправлять свои пакеты. Классы их сами обрабатывали и вызывали внешний обработчик-функцию в которую слали принятую строку. Причем со ссылкой на сокет, который отправил - шло жеское разделение сокетов. И даже (кажется) каждый обработчик вызывался в отдельном потоке...
Подозреваю что всю "конфликтность" одновременных отсылок и приемов" брали на себя классы в делфи.
Сейчас читаю про Беркли. Раньше видел подобное под другую реализацию сокетов... Внутри - бесконечный цикл. ОДИН! for (;! Внутри что-то читаем, что-то выводим. Что-то (теоретически) отправляем. А что происходит если одновременно 100 пакетов идут? Мне их самому разделять? И разным обрабатчикам раздавать? И отправителей вычислять?
Этот бесконечный цикл, (в котором не понимающему принципов новичку легко напортачить) меня так напугал, что я и смотрел в сторону Qt - там хоть изначально все в классах - вдруг как в Делфи - уже "обо всем позаботились"... Мне даже контроль разрыва связи с клиентами похоже на себя взять прийдется...
А еще я ПОТОМ планирую переписать свой протокол и под линукс-сервер (хостинг). И не охота потом переделывать полностью и сокетный "слой".
Можете обьяснить "на пальцах" разницу в сокетах между Win и линуксом?
В описании Беркли встретил фразу "Принятие входящих соединений через вызов accept(). Это БЛОКИРУЕТ сокет до получения входящего соединения...". Это из той-же оперы или нет?
0
 Аватар для solar_wind
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
29.12.2014, 11:50
Tester64, Ну в общих чертах, используя синхронные сокеты тебе придется для каждого подключения создавать два потока, для получения данных и для отправки.
Асинхронные сокеты дают возможность работать, используя малое количество потоков.
Вообщем подробно это надо читать статьи, документации, в двух словах не расскажешь.
1
1443 / 1326 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
29.12.2014, 11:58
Цитата Сообщение от solar_wind Посмотреть сообщение
используя синхронные сокеты тебе придется для каждого подключения создавать два потока, для получения данных и для отправки.
что за потоки?
0
 Аватар для solar_wind
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
29.12.2014, 12:03
Цитата Сообщение от Dmitriy_M Посмотреть сообщение
что за потоки?
Обычные потоки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.12.2014, 12:03
Помогаю со студенческими работами здесь

Возможности TComboBox
Есть ли возможность в TComboBox заносить информацию из БД и по выделенному элементу получать его идентификатор в БД? P.S. В C# есть...

Возможности Windows10
Удалил я короче много различных веток реестра, и у меня крашнулся regedit. Ребутнул комп, он запустил восстановление. Выбрал восстановление...

Возможности UDP
Доброго времени суток, форумчане. Можно ли примерно сказать какой максимальный поток данных возможно разгрести через UDP без потерь? 1, 2,...

Возможности транзакции
Всем привет, возможно ли сделать следущее с транзакциями, если нет, то подскажите как правильно сделать: В одном фрейме есть три...

Возможности PSpice
Добрый день! Подскажите возможно ли провести в симуляторе PSpice расчет установившегося режима для энергосистемы? С возможностью...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru