ifelser (ifelser) wrote in ru_cpp,
ifelser
ifelser
ru_cpp

Category:

про qt qwt

так получилось что пришлось делать проект на с++ + qt. И жизненно необходимы были
диаграммы (чарты), причем qt до этого в глаза не видел, только слышал что есть
(в вакансиях часто требуется). Полазив по интернету пришел к выводу что практически единственное
и самое популярное средство (во всяком случае бесплатное, по платным ситуацию уже
не помню) - это библиотека qwt. Когда скачал, перехотелось её использовать,
ибо там было великое множество классов и методов и все только для того чтобы делать чарты.
В дизайнере разумеется ни хрена ничего не настраивается. При этом разумеется её надо было
собрать, с чем возникло тоже полно трудностей (в сумме наверно пол рабочего дня потратил на сборку).
В итоге волей-неволей пришлось изучать, смотря хелп и примеры, кои есть в достаточном количестве.
Причем фишка в том что в интернете про её использование не найти инфы, а на приличном форуме
по qt тоже не нашлось человека хорошо в ней разбирающегося (или все молчали). Нет, пару
человек сказали что использовали, но на вопросы (простейшие) никто не отвечал. Поэтому вкратце
скажу что я о ней думаю после 3 месяцев работы с qwt (не все разумеется 3 месяца, но постоянно приходилось
возиться).
Если вы до этого сидели на билдере с++ (как я), то конечно жопа полная. В билдере все
настраивается через дизайнер, ну чтото в коде (в основном то что тяжело через дизайнер),
тут же все вперед ручками. Для тех кто сидел на к'юте до этого это вобщем то не страшно,
ибо в к'юте в основном все ручками фигарится - это громаднейший минус. Причем к'юте платная
для использования в коммерции и к слову очень даже платная. Да и вообще, проработав уже 3 месяца
на к'юте в общей совокупности особых плюсов не заметил.
Но вернемся к qwt. Итак чтобы настроить к приеру шкалы нужно получить доступ к классу и через
него все настраивать, причем названия методов (а в кюте все делается через методы, а не
к примеру атрибуты (хотя бы какаято часть)) не больно то логичны, то есть с наскоку не
возьмешь. Чтобы сделать сетку нужно добавить специальный класс, чтобы сделать выделение
мышкой - тоже спец класс, а самое что убило - нет автонастройки лэйблов по осям, то есть
если вы хотите к примеру по оси х выводить дату, то придется унаследоваться от класса оси
и переопределить один метод, сделав преобразование из типа дабл к нужному нам типу по какой то
функции ибо по осям кюте понимает только дабл. При этом еще компонент еще и подглючивал -
рисовал метки за границей себя (для исправления этой фигни пришлось переписать пару методов (конечно
было изменено немного, но получилось очень некрасиво)).
 Основная идея чартов - рисовать графики и соответственно нада загнать кудато данные.
Вот тут еще одна жопа - в qwt нет метода типа Линия->addvalue(x,y), там нада выделять динамически
массив даблов, его забивать и передавать в функцию, указывая длину - и такой бред в конце
2008 года! Пришлось написать свой собственный адаптер для перевода скажем вектора значений
в эту байду.
В целом сложилось впечатление что компонент тормознутый (нет, он аццки не тормозил, но не было
какойто легкости, как когда создаешь пустую форму на билдере с каким то еще компонентом и это
просто ЛЕТАЕТ), при этом комп - двухядерный кор на 2,4 ггц. Да и полное создание такого
компонента (с настроенными осями и тд) занимало не позволительное время - пришлось
создавать их не скопом, а по мере необходимости, ибо создание протормаживало интерфейс, что
крайне неприятно.
Кароче вывод такой - уж если связались с кюте, то видимо будете вынуждены использовать
и qwt (когда нужны будут диаграммы), а следовательно - готовьтесь!
Subscribe

  • multi-core programming в линуксе?

    Хочу попробовать написать мульти-ядерную програмку (Федора линукс). Нужно очень мало: чтобы каждое ядро просто обсчитывало одну и ту же процедуру с…

  • (no subject)

    Здравствуйте! У меня проблема. Ширина кнопок разная. Подскажите, пожалуйста, как единую сделать? <html> <head> <title>Заведение…

  • Помогите, пожалуйста, со стандартами кодирования

    Для диплома на тему, связанную со сравнением кода со стандартом предприятия необходимы стандарты написания кода в различных фирмах, на предприятиях.…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 27 comments

  • multi-core programming в линуксе?

    Хочу попробовать написать мульти-ядерную програмку (Федора линукс). Нужно очень мало: чтобы каждое ядро просто обсчитывало одну и ту же процедуру с…

  • (no subject)

    Здравствуйте! У меня проблема. Ширина кнопок разная. Подскажите, пожалуйста, как единую сделать? <html> <head> <title>Заведение…

  • Помогите, пожалуйста, со стандартами кодирования

    Для диплома на тему, связанную со сравнением кода со стандартом предприятия необходимы стандарты написания кода в различных фирмах, на предприятиях.…