wxWidgets vs Ultimate++

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
Nikolay
Experienced Solver
Experienced Solver
Posts: 72
Joined: Wed Oct 10, 2007 4:27 am

Post by Nikolay »

T-Rex wrote:
Если использовать wxWidgets, то возникает желание использовать Boost, там много разных вкусностей. Это нормальное желание?
Ну, скорее нет чем да.
А чем можно обосновать "нет", кроме того что в wx есть аналоги некоторых вещей?

Имхо smart poiinters достаточно нужная штука.
Best regards, Nikolay
wxWidgets in russian
Small Notes Manager and Clipboard Manager with History written with wxWidgets
User avatar
T-Rex
Moderator
Moderator
Posts: 1249
Joined: Sat Oct 23, 2004 9:58 am
Location: Zaporizhzhya, Ukraine
Contact:

Post by T-Rex »

А зачем тебе цирк в коде? На RSDN вроде как-то проскакивал анализ бустовой реализации алгоритмов и реализации вручную. В общем буст работает как-то явно "не быстрее", хотя я ничего против его использования не имею, просто не вижу в этом смысла, т.к. в wx многие нужные вещи уже есть.
В 3.0 вроде обещали шаблоны.. вот тогда можно будет и подумать на счет буста. А так, в официальных гидлайнах "не используйте STL" ну и наверно ж подразумевается и остальное.
DmP
Earned a small fee
Earned a small fee
Posts: 15
Joined: Fri Apr 15, 2005 8:00 am
Location: Ukraine

Post by DmP »

Вообще у меня есть опыт использования как wx, так и qt, и что сразу бросается в глаза, так это не совсем удобный класс wxString, даже когда я не использовал qt мне было не понятно почему нет отдельного класса для работы с ansi строками и отдельного с unicode. И как показала практика с qt, это очень удобно. Забавно, что сейчас в рассылке разработчиков была поднята тема по этому поводу, но разработчики отмазались лишь тем, что если вам надо сделайте свою реализацию. Я понимаю, что им возможно не сладко переделывать проект, но это же фундаментальные вещи, которые существенно упрощают жизнь.
Если, говорить о u++, то там вроде бы есть String и WString.
По поводу шаблонов, то насколько я понял в wx 3.0 они будут использоваться повсеместно, по крайней мере wxArray и wxVector уже перевели на шаблоны, думаю на очереди другие классы.
Также в wx жутко не хватает утилит которые есть qt - uic и rcc.
User avatar
T-Rex
Moderator
Moderator
Posts: 1249
Joined: Sat Oct 23, 2004 9:58 am
Location: Zaporizhzhya, Ukraine
Contact:

Post by T-Rex »

На счет строк.. Вопрос спорный. я уже и не помню когда ANSI-строками пользовался целенаправленно. Писать ANSI-проекты нынчо дурной тон %)
Точно помню что Firebird хавает только ANSI-пути, поэтому wxConvertWX2MB() но это все, больше так вроде нигде. Да и на WinAPI/MFC всегда по большей части TCHAR юзал т.к. он редефайнится в зависимости от типа сборки ANSI/UNICODE в char/wchar_t - очень удобно тоже.

По поводу утилит.. а что делают-то?
The rcc tool is used to embed resources into a Qt application during the build process. It works by generating a C++ source file containing data specified in a Qt resource (.qrc) file.
wxrc по-моему отлично так работает.
DmP
Earned a small fee
Earned a small fee
Posts: 15
Joined: Fri Apr 15, 2005 8:00 am
Location: Ukraine

Post by DmP »

T-Rex wrote:На счет строк.. Вопрос спорный. я уже и не помню когда ANSI-строками пользовался целенаправленно. Писать ANSI-проекты нынчо дурной тон %)
Точно помню что Firebird хавает только ANSI-пути, поэтому wxConvertWX2MB() но это все, больше так вроде нигде. Да и на WinAPI/MFC всегда по большей части TCHAR юзал т.к. он редефайнится в зависимости от типа сборки ANSI/UNICODE в char/wchar_t - очень удобно тоже.
Бывает так что нужно работать с текстовыми файлами, если файл больший и имеет, скажем CP1251 кодировку, то проще его разбирать без преобразования, а некоторые строки уже конвертировать в уникод. В qt это сделано удобно, от QString всегда можно получить QByteArray и обратно. При чем QByteArray очень просто потом скажем записать в файл одним параметром, а не двумя (void *, size_t) вроде бы мелочи но, меньше лишних движений, больше удобства.
По поводу утилит.. а что делают-то?
The rcc tool is used to embed resources into a Qt application during the build process. It works by generating a C++ source file containing data specified in a Qt resource (.qrc) file.
wxrc по-моему отлично так работает.
rcc может любые файлы запихнуть в .cpp файл, и потом очень легко использовать из программы, например QImage(":/myimage.png") или QFile(":/mylicense.txt")
а uic делает настоящий заголовок из формы, а не как wxrc, который просто вкомпилирует хмл-ку в cpp и потом парсит её при загрузке. Т.е. мы всегда зависим от модуля xrc, а он на сколько я понимаю достаточно тяжеловесный, так как тянет за собой всю графическую подсистему.
User avatar
T-Rex
Moderator
Moderator
Posts: 1249
Joined: Sat Oct 23, 2004 9:58 am
Location: Zaporizhzhya, Ukraine
Contact:

Post by T-Rex »

хз, не вижу ничего плохого в xrc-модуле, ну да, весит сколько-то, и что, в Линухе бинарник получается такого размера что 200-300 кб лишних роли не играют, да и strip и UPX еще никто не отменял. Режет ненужное просто супер.
Но тут опять же, на вкус и цвет фломастеры разные.

ЗЫ: XRC сам не пользую, не люблю скрипты в проекте. Хотя ... это всего лишь личные предпочтения.
DmP
Earned a small fee
Earned a small fee
Posts: 15
Joined: Fri Apr 15, 2005 8:00 am
Location: Ukraine

Post by DmP »

T-Rex wrote:хз, не вижу ничего плохого в xrc-модуле, ну да, весит сколько-то, и что, в Линухе бинарник получается такого размера что 200-300 кб лишних роли не играют, да и ...
Это наверное сам xrc 200-300 Кб, а у него в зависимости все контролы wx. Если линкуется xrc, то прилинкуется вся wx не зависимо от того, что реально используется.
T-Rex wrote: ЗЫ: XRC сам не пользую, не люблю скрипты в проекте. Хотя ... это всего лишь личные предпочтения.
А что используете для создания форм, если не секрет?
User avatar
T-Rex
Moderator
Moderator
Posts: 1249
Joined: Sat Oct 23, 2004 9:58 am
Location: Zaporizhzhya, Ukraine
Contact:

Post by T-Rex »

- DialogBlocks
- Пишу ГУИ вручную
- wxFormBuilder (в случае фатальной необходимости)
Post Reply