Pull to refresh

Comments 12

Недавно искал либу для чтения и редактирования док(старых и новых) файлов. Прочитал топик, вроде раньше не находил эту, пошел почитал доки:
OfficeDoc handles the suites through «Ole Automation» so it requires either OpenOffice or Microsoft Office to be previosly installed in the computer.

Жаль, остается использовать Qt Activex как и раньше.
Проблема OfficeAutomation в отсутствии прямого доступа к API Excel/Word из-за поддержки кроссплатформенности. Как следствие, функций прослойки часто не хватало, например, взять задачу выравнивания текста по центру в Word'e. Еще столкнулся с проблемой встраивания этих приложений как дочерний фрейм в сплиттере как тут в C#. Так вот скрыть командные панели до сих пор не удалось, так как не смотря на пример выше разработчик ссылается, что эта функция отключена начиная с MS Office 2007. Интересно как в Qt ActiveX с этим. Предположу, что это аналог DSOFormer, который закрыли как проект из-за неких проблем с новыми офисами.
Не смог редактировать предыдущий пост, пришлось написать новый.
Я лишь поверхностно ознакомился с либой, можете вкратце описать основные отличия и если есть преимущества в сравнении с тем же Qt и более легковестным Boost?
Во-первых, на фоне обоих он выглядит легковесным в плане развертывания, по крайней мере на Windows (Linux не пробовал). Во-вторых это очень краткий код, нацеленный на быстрое прототипирование. Здесь небольшое сравнение с Qt, Java/Swing и wxWidgets. И это действительно так, потому что быстро накидать GUI и проиллюстрировать баг не лень. Последние присутствуют в большем количестве чем Boost/Qt. Документации и форума часто не хватает, если требуется шаг влево, приходится поглядывать в ядро (60 сообщений за месяц все-таки много когда решаешь прикладную задачу, а не развиваешь U++). Комьюнити, судя по ~1200 зарегистированным юзерам на форуме, небольшое и это сдерживает интенсивное развитие. В третьих сильная сторона это работа с SQL в объектном стиле очень компактно и без нареканий. В четвертых это встроенные 2d графики, что делает U++ очень удобной для мат. моделирования вкупе с быстрым накидыванием гуя. Матриц как в UBlas нет, но как либа доступен Eigen.
С Qt они сравнили хорошо в свою пользу, правда не учли прекраснейшего QtDesigner позволяющего работать в окошками в визуальной среде, а потом удобно пользоваться диалогом из кода.
У Qt наверное лучшая документация из всего, что я когда-либо встречал, а количество полезных классов и функций просто зашкаливает.

В плане общего кода, если не нужны окошки — буст явно лучше, так как де-факто уже стандартен, и используется во многих проектах.
Да, скорее говорить о U++ надо в контексте задач, где он выглядит выигрышно. Для себя я определил два направления: мат моделирование (если требуется реалтайм визуализация расчетных величин, а Matlab/Maple не хочется использовать) и системно-администраторские утилиты (за счет удобного SQL и не больших требованиях к красивостям). Хочу также поделиться красивым примером использования U++: «Силос-мастер».
1. Просмотрел сравнение с Qt. Ну что тут сказать, или парни которые писали код не знают что такое QtDesigner, или пример еще с Qt3, когда этого редактора еще не было, писали код, или же намеренно делают все вручную что бы запугать и не дать потенциальному пользователю U++ попробовать QtGui. Больше половины кода, да почти все что связано с элементами интерфейса(кнопки, лейблы, едиты, табы etc) все делается очень легко и быстро с помощью QtDesigner. Останется связать события этих элементов на свою функцию-обработчик + останется код на обработку самой инфы. В общем, это сравнению некорректно.

2.
Документации и форума часто не хватает, если требуется шаг влево, приходится поглядывать в ядро (60 сообщений за месяц все-таки много когда решаешь прикладную задачу, а не развиваешь U++)...

Очень большой минус, Qt имеет замечательную документацию(оффлайн, онлайн), комьюнити десятки тысяч людей, если не разобрался с проблемой на форуме очень быстро напишут решение если оно есть. Про развитие вообще молчу, каждый день под сотню [url=https://codereview.qt-project.org/#q,status:open,n,z]коммитов[/url].

3.
В третьих сильная сторона это работа с SQL в объектном стиле очень компактно и без нареканий.

Ничего сверхестесвтенного, все почти так же как в Qt.

4.
В четвертых это встроенные 2d графики.

А вот это уже реальный плюс U++. В Qt такие вещи в виде сторонних либ. Есть замечательные [url=http://qt.digia.com/Product/Qt-Core-Features--Functions/Charts/]Qt Charts[/url](платная), из бесплатных есть[url=https://sourceforge.net/projects/qwt/]Qwt(LGPL)[/url], разрабатываемый больше 10 лет, у нас в клиентских программах используется. Вот недавно появилась симпатичная [url=http://www.qcustomplot.com/]QCustomPlot(GPL)[/url], жаль нам из-за лицензии не подходит. В общем, я бы как раз и развивал эти графики в U++, так как адекватных вариантов если не использовать Qt я не видел, с учетом если писать на С++.

Итого для меня U++ пока только «посмотреть — поиграться».

Чего это я не могу редактировать комменты? :( По привычке bbcodы юзаю.
Как раз сейчас и использую U++ на работе из-за графиков. До этого в своих проектах работал на связке WTL + NTGraph. В этот раз устал от большого количества лишнего кода WTL, regsvr32 для NTGraph выдал ошибку, я на это плюнул и с удовольствием стал работать с Upp::ScatterCtrl. Проблем нет. Qt будет скорее всего незаменим в промышленных задачах, мне же как математику (для GUI, даже ) важно иметь под рукой базовый инструмент для быстрого прототипирования, с чем U++ справляется.
Для быстрого прототипирования c Qt можно использовать Python. Быстрее (прототипировать) уже вроде некуда.
Во-первых, если вы занимаетесь прототипированием, то вопрос скорости работы программы вас занимать должен в последнюю очередь. Это быстрая реализация системы\алгоритма. Проверили идею, пересмотрели архитектуру, изменили инструменты при необходимости.

Во-вторых, если вам нужны матрицы, NumPy осуществляет поддержку многомерных массивов и матриц и имеет библиотеку высокоуровневых математических функций для операций с этими массивами. Ну и относительно скорости работы небольшая цитата из Вики:

любой алгоритм, который может быть выражен в основном как последовательность операций над массивами и матрицами, работает так же быстро, как эквивалентный код, выполняемый в MATLAB, а после специальной оптимизации скорость может достигнуть скорости компилируемых языков типа Cи.
Sign up to leave a comment.

Articles