Russian Qt Forum

Qt => Общие вопросы => Тема начата: 8Observer8 от Март 18, 2014, 05:53



Название: Классы на чистом C++ или Qt-way?
Отправлено: 8Observer8 от Март 18, 2014, 05:53
Привет!

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

Заранее спасибо за ответы!


Название: Re: Классы на чистом C++ или Qt-way?
Отправлено: Igors от Март 18, 2014, 06:26
Смотря что за классы. Напр класс датчика в Вашем задании - возможно имеет смысл делать его "без Qt". И то проблематично - напр как хранить строки? Вместо QString юзать std::string  - так это не unicode. Как только начнется взаимодействие этого класса с UI на Qt - придется переливать строки туда-сюда.

Я мог бы в будущем использовать свои наработки с другими фреймворками. А не менять потом везде QString на std::string :)
Из старого мультфильма
Цитировать
Ой Ваня, а не высоко ль ты мостисся?
:)


Название: Re: Классы на чистом C++ или Qt-way?
Отправлено: Bepec от Март 18, 2014, 07:33
А можно писать на чистом С. Тогда сможете после некоторого допила давать этот класс тем, кто работает на микроконтроллерах.
А ещё можно на асме :D Тогда вообще раздолье.

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

PS а вот подумать о передаче данных в стандартном или Qt формате на выбор - можно. Тогда для принимающего не будет иметь значения на чём написан датчик или что-там у вас.


Название: Re: Классы на чистом C++ или Qt-way?
Отправлено: 8Observer8 от Март 18, 2014, 07:49
как хранить строки? Вместо QString юзать std::string  - так это не unicode.
По поводу unicode я не подумал. Пришлось бы использовать wstring. Спасибо! :)

PS а вот подумать о передаче данных в стандартном или Qt формате на выбор - можно.
Что такое "передаче данных в стандартном формате" я, кажется, понял: это XML и JSON. А вот что такое Qt-формат?


Название: Re: Классы на чистом C++ или Qt-way?
Отправлено: LisandreL от Март 18, 2014, 07:58
А вот что такое Qt-формат?
Ну что-то в этом духе: http://qt-project.org/doc/qt-5/datastreamformat.html (http://qt-project.org/doc/qt-5/datastreamformat.html)
Хотя и для тех же xml/json в Qt средства имеются.


Название: Re: Классы на чистом C++ или Qt-way?
Отправлено: Bepec от Март 18, 2014, 08:06
Именно dataStream  я и имел в виду.


Название: Re: Классы на чистом C++ или Qt-way?
Отправлено: 8Observer8 от Март 18, 2014, 08:14
Всем огромное спасибо! Я решил, что буду использовать везде Qt-way: там где надо и не надо :)


Название: Re: Классы на чистом C++ или Qt-way?
Отправлено: Old от Март 18, 2014, 08:20
Всем огромное спасибо! Я решил, что буду использовать везде Qt-way: там где надо и не надо :)

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

Qt это всего лишь один из gui-фреймворков с кучей дополнительных плюшек. Завязываться только на него, это стать new delphi developer. :)
К Qt стоит относиться как к одной из библиотек.


Название: Re: Классы на чистом C++ или Qt-way?
Отправлено: 8Observer8 от Март 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);


Название: Re: Классы на чистом C++ или Qt-way?
Отправлено: Old от Март 18, 2014, 08:34
Ну вот только я определился с выбором, а Вы всё испортили :)
Просто не нужны крайности. В нашей отрасли все быстро меняется и к этому нужно стараться быть готовым. :)


Название: Re: Классы на чистом C++ или Qt-way?
Отправлено: 8Observer8 от Март 18, 2014, 08:36
Аааа, вот Вы о чём :) Спасибо, учту :)


Название: Re: Классы на чистом C++ или Qt-way?
Отправлено: Igors от Март 18, 2014, 08:40
и использовать QList вместо std::list
QList - вовсе не аналог std::list (в отличие напр от QVector - std::vector). Для ф-ционала std::list в Qt есть QLinkedList. Какая бы ни была специфика работы - контейнеры есть всегда. Поэтому изучать их надо тщательно, а не так, "поматросил и бросил" (убежал на СУБД)