Russian Qt Forum
Ноябрь 24, 2024, 23:18 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Классы на чистом C++ или Qt-way?  (Прочитано 6940 раз)
8Observer8
Гость
« : Март 18, 2014, 05:53 »

Привет!

Буквально, пару мнений хотелось бы услышать. Не для кого не секрет, что в Qt можно использовать классы на чистом C++. Может имеет смысл везде, где это возможно придерживаться этой стратегии? Можно было бы использовать эти классы повторно и тем людям, которые работают с другими фреймворками. Я мог бы в будущем использовать свои наработки с другими фреймворками. А не менять потом везде QString на std::string Улыбающийся

Заранее спасибо за ответы!
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #1 : Март 18, 2014, 06:26 »

Смотря что за классы. Напр класс датчика в Вашем задании - возможно имеет смысл делать его "без Qt". И то проблематично - напр как хранить строки? Вместо QString юзать std::string  - так это не unicode. Как только начнется взаимодействие этого класса с UI на Qt - придется переливать строки туда-сюда.

Я мог бы в будущем использовать свои наработки с другими фреймворками. А не менять потом везде QString на std::string Улыбающийся
Из старого мультфильма
Цитировать
Ой Ваня, а не высоко ль ты мостисся?
Улыбающийся
Записан
Bepec
Гость
« Ответ #2 : Март 18, 2014, 07:33 »

А можно писать на чистом С. Тогда сможете после некоторого допила давать этот класс тем, кто работает на микроконтроллерах.
А ещё можно на асме Веселый Тогда вообще раздолье.

Нет, не рационально это. Qt предлагает ускорение разработки и удобство. Вы же его хотите отбросить. Зачем вам тогда Qt?

PS а вот подумать о передаче данных в стандартном или Qt формате на выбор - можно. Тогда для принимающего не будет иметь значения на чём написан датчик или что-там у вас.
Записан
8Observer8
Гость
« Ответ #3 : Март 18, 2014, 07:49 »

как хранить строки? Вместо QString юзать std::string  - так это не unicode.
По поводу unicode я не подумал. Пришлось бы использовать wstring. Спасибо! Улыбающийся

PS а вот подумать о передаче данных в стандартном или Qt формате на выбор - можно.
Что такое "передаче данных в стандартном формате" я, кажется, понял: это XML и JSON. А вот что такое Qt-формат?
« Последнее редактирование: Март 18, 2014, 08:11 от 8Observer8 » Записан
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #4 : Март 18, 2014, 07:58 »

А вот что такое Qt-формат?
Ну что-то в этом духе: http://qt-project.org/doc/qt-5/datastreamformat.html
Хотя и для тех же xml/json в Qt средства имеются.
Записан
Bepec
Гость
« Ответ #5 : Март 18, 2014, 08:06 »

Именно dataStream  я и имел в виду.
Записан
8Observer8
Гость
« Ответ #6 : Март 18, 2014, 08:14 »

Всем огромное спасибо! Я решил, что буду использовать везде Qt-way: там где надо и не надо Улыбающийся
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #7 : Март 18, 2014, 08:20 »

Всем огромное спасибо! Я решил, что буду использовать везде Qt-way: там где надо и не надо Улыбающийся

Ну и зря. Улыбающийся
Следующем шагом вам дадут задание отказаться от Qt на сервере, потому что там его не будет, и вам полностью придется все переделать.

Qt это всего лишь один из gui-фреймворков с кучей дополнительных плюшек. Завязываться только на него, это стать new delphi developer. Улыбающийся
К Qt стоит относиться как к одной из библиотек.
« Последнее редактирование: Март 18, 2014, 08:22 от Old » Записан
8Observer8
Гость
« Ответ #8 : Март 18, 2014, 08:31 »

Ну вот только я определился с выбором, а Вы всё испортили Улыбающийся

Продумывать варианты о которых не знаешь - это сложно. Что будет в будущем - неизвестно. Если мне скажут, что переписывай на .Net - я просто уволюсь Улыбающийся На начальном этапе я всё же буду использовать QString вместо std::string и использовать QList вместо std::list. А там посмотрим.

А вот вместо Qt-го вывода в консоль:
Код
C++ (Qt)
#include <QTextStream>
 
QTextStream cin(stdin);
QTextStream cout(stdout);
 

Лучше использовать std::cout Так как не придётся писать cout.flush(); Да и смысла не вижу использовать: QTextStream cout(stdout);
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #9 : Март 18, 2014, 08:34 »

Ну вот только я определился с выбором, а Вы всё испортили Улыбающийся
Просто не нужны крайности. В нашей отрасли все быстро меняется и к этому нужно стараться быть готовым. Улыбающийся
Записан
8Observer8
Гость
« Ответ #10 : Март 18, 2014, 08:36 »

Аааа, вот Вы о чём Улыбающийся Спасибо, учту Улыбающийся
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #11 : Март 18, 2014, 08:40 »

и использовать QList вместо std::list
QList - вовсе не аналог std::list (в отличие напр от QVector - std::vector). Для ф-ционала std::list в Qt есть QLinkedList. Какая бы ни была специфика работы - контейнеры есть всегда. Поэтому изучать их надо тщательно, а не так, "поматросил и бросил" (убежал на СУБД)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.205 секунд. Запросов: 23.