|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
|
WxWidgets - кто пользуется03.07.2015, 18:38. Показов 6350. Ответов 18
Метки нет (Все метки)
Гуру WxWidgets, дайте советы...
Я пришел из Делфи, поэтому для меня этот кошмар довольно новый... Нужно в С++ делать оконные программы. Остановился на wxWidgets+CodeBlocks+MinGW. А теперь собственно вопросы: 1) После Делфи бесит скупость редактора окошек. Это я что-то забыл установить или это норма? Например как делается простое "приклеивание к бортикам" компонента или растягивание панели вдоль нижней границы? Или растягивание редактора на всю оставшуюся часть? Перетасквать компоненты можно только по одному, копирование-вставка компонент не работает. Может есть альтернативные редакторы? (в делфи базовый дизайн из десятков компонент делался минут за 10, а тут 3 кнопки таскаю по экрану уже час) 2) Есть ли ВСТРОЕННЫЙ редактор RichEdit? Куда можно скопировать-вставить цветной текст из ворда. Куда можно выводить цветные строки разными шрифтами? Или вообще сделать полноценный редактор RTF файлов? В Делфи был компонент TRichEdit похоже созданный на основе WinAPI 3) Если (когда) я захочу перейти под MacOS/Linux, что мне предстоит переделывать? Слышал что обязательно прийдется немножко "перепиливать". Учитывая что мне не нужен полный функционал окошек (5-8 ВИДОВ компонент), хотелось бы предусмотреть это и максимально уменьшить переделку потом. 4) Тяжело ли написать свой оконный компонент? Есть ли сборники опенсорс компонент? Тяжело ли их подключить? Насколько они мультиплатформенные? Не по теме: Говорят Qt удобнее, но ОЧЕНЬ не хочется. И еще мне ОЧЕНЬ нужна КОНСОЛЬНАЯ сборка проекта. Под wxWidgets я смог это настроить (долго мучился). А еще слышал что сборка под Qt намного дольше wxWidgets и занимает под 40Мб. Нужно написать простой набор редакторов полей к моей-же библиотеке написанной под Codeblocs+MinGW.
0
|
|
| 03.07.2015, 18:38 | |
|
Ответы с готовыми решениями:
18
wxWidgets SetBitmap WxWidgets комппиляция Изображения в wxWidgets |
|
70 / 64 / 40
Регистрация: 17.02.2014
Сообщений: 265
|
|||||
| 03.07.2015, 19:30 | |||||
|
Попробую ответить на часть вопросов, правда wxWidgets знаю плохо, в любом случае вам придется самому разбираться в документации.Скажу одно, практически все, что есть в WinAPI есть в wxWidgets, ну собственно и ближайшие аналоги виджетов для линукса точно - для остальных платформ не в курсе.
P.S советую посмотреть семплы там же имеются сорцы - думаю множество вопросов отпадут, ну и в любом случае придется изучать их скудную документацию.
1
|
|||||
|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
||||
| 04.07.2015, 08:53 [ТС] | ||||
|
Накачал кучу примеров бинарников написаных на wxWidgets... Почти шедевры! (почти как на Делфи) Шустрые, компактные, со сложными графическими компонентами (редактор аудио-файлов рисует графики - анимация очень быстрая). То что видел на Qt после этого кажется огромным и тормознутым... Хотя может и редакторы удобнее у Qt. А на чем пишет большинство??? Для КОММЕРЧЕСКИХ продуктов? (может я изначально не правильный инструмент выбираю) Добавлено через 36 минут Начал гуглить и сплошные команды - "как подключить сайзер" Тоесть до компиляции и запуска я не увижу результат того как "растянул/прижал" сайзер мой компонент?
0
|
||||
|
70 / 64 / 40
Регистрация: 17.02.2014
Сообщений: 265
|
||||
| 04.07.2015, 09:24 | ||||
CodeBlocks написан полностью на нем, есть еще Audacity - звуковой редактор.Редактор уровней для движка Unreal Engine.
1
|
||||
|
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
||
| 04.07.2015, 09:48 | ||
|
В редакторе wxSmith есть вкладка Layout с различными сайзерами. Можно таскать мышкой на форму и комбинировать как нравится. Результат, отображаемый в редакторе, отличается от фактического хотя бы потому, что в моем случае редактор, например, не учитывает высоту и ширину родительского wxDialog и отображает все более компактно. Еще в официальной вики есть туториал: Building more complex window.
1
|
||
|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
|||
| 04.07.2015, 10:16 [ТС] | |||
|
То что этим пользуется Unreal это конечно круто, но там много кодеров, а я один! И если мне нужно "набросать" простую утилиту-калькулятор или простой редактор полей базы, то не хочу возвращаться в Делфи(платный и умирающий с каждым выходом нового релиза, не смотря на все свои достоинства)... Не по теме: Например надо было в трей запихнуть автоматический проверяльщик сайта (скачать zip/отправить zip) - 5-6 кнопок, мемо и 2-3 едитора для настроек. Работы на 5-6 часов. Графический дизайн сделал за 5 минут - остальное писал функционал кнопок. Мне часто приходится писать такие "утилитки". Желательно маленького размера, а не в 40-50мб. И шустрые. Поэтому пока и не смотрю на Qt.
0
|
|||
|
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
||
| 04.07.2015, 10:20 | ||
|
0
|
||
|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
||
| 04.07.2015, 10:56 [ТС] | ||
|
верний абзац с картинкой: http://thedelphi.ru/les/les8.php или это как получить? http://www.webdelphi.ru/wp-con... tRight.jpg Я попробовал добавить 2 батона в горизонтальный сайзер. Получил равномерное растягивание двух тонких кнопок 50%(это управляется? могу поставить 60/40? в настройках нет.) от ширины. Но высота осталась те-же 30 пикселов! Раньше я бы получил растягивание кнопок и в верх в высоту. Теперь на высокой форме получил две тонюсенькие кнопки в центре. Добавлено через 10 минут Обидно другое! Еще студентом (лет 10 назад) я на Делфи нарисовал механизм управления компонентами формы поудобнее. Да и готовые чужие наработки под Делфи были в опенсорсе - там можно выделить несколько элементов и их плавно двигать. И кнопками управлять можно. А тут стрелки - вообще "глухие" на выделеном компоненте... Такое чувство что довели до состояния "заработало хоть как-то, в принципе работать можно, ну и ладушки... потом как-нибудь может быть доведем до ума".
0
|
||
|
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
| 04.07.2015, 11:00 | |
|
1
|
|
|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
|
| 04.07.2015, 11:11 [ТС] | |
|
А все-таки, то что большинство пользуются Qt это я уже понял, а "меньшенство"? РЕАЛЬНО кто-нибудь ИЗ ВАС использует wxWidgets в повседневной работе?
Может я зря затеял эту возню с wxWidgets?
0
|
|
|
70 / 64 / 40
Регистрация: 17.02.2014
Сообщений: 265
|
||
| 04.07.2015, 11:23 | ||
|
В виджетах сам сайзер берет полностью полость окна родителя. То есть у каждого окна есть метод SetSizer(wxSizer*) - к этому сайзеру можно применить еще сайзер к дочернему еще один и т.д, в настройках сайзера можно указать оффсет до формы - причем этот оффсет может быть растягивающимся либо нет, Align также присутствует -лево\право\центр и т.д - плюс к этому можно задать будет ли растягиваться форма.Про wxSmith не в курсе, возможно ли это сделать средствами этого плагина, но кодом это реализовать можно точно (по второй картинке).Пропорциональность также задается в сайзерах.
Добавлено через 2 минуты
0
|
||
|
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
| 04.07.2015, 11:27 | |
|
0
|
|
|
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
| 04.07.2015, 11:32 | |
|
Не знаю, насколько это соответствует ожиданиям, но просто потыкав wsSmith получил такой результат.
0
|
|
|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
||
| 04.07.2015, 12:23 [ТС] | ||
|
Я уже поигрался с рабочей областью, накидал компонент, уже даже приписал к некоторым код (хелло ворд, но все-таки). А теперь надо положить на основу сайзер... Похоже ВСЕ переписывать надо! Причем даже не могу сделать форму-клон и скопировать оттуда нужное! Вроде элементарные вещи, я сам такое на Делфи писал за неделю-две! почему-же сишникам это не нужно??? Я понимаю что перейдя на С++ я должен и думать научиться "по другому", но пока мне это не понятно! неделя-две работы для профи и редактор станет крайне удобным... А как дело обстоит в Qt? Или в MSВижуалС++?
0
|
||
|
70 / 64 / 40
Регистрация: 17.02.2014
Сообщений: 265
|
|||
| 04.07.2015, 13:29 | |||
|
0
|
|||
|
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
||
| 04.07.2015, 13:35 | ||
|
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||
| 04.07.2015, 14:03 | ||
|
работая с mfc, я выработал привычку постоянно и часто бэкапиться. одно неверное движение - и начинается длительный головняк: ручное исправление ресурсов. среда здесь уже не помогает. мне не удалось скопировать ресурсы из одного проекта в другой (если проекты из разных солюшенов). поэтому, если хочется построить диалог "вот как вот в этой программе", но в другом проекте, то даже при наличии исходников, и всех ресурсов, выполнить это затруднительно. ресурсы у них дибильные, требующие специализированного компилятора. class wizard, который по идее должен автоматизировать головняк с ресурсами, в visual studio 2013 плюется исключениями. (не может обнаружить нужный для работы базовый класс у класса юзерского диалога, несмотря на то, что физически он есть. и саму иерархию конструировал мастер проекта, а не программист) я пытался завести его на разных студиях. нигде не работает. поэтому, карту реакций на события приходится править вручную. mfc не умеет автоматический ресайз виджетов. это означает, что при растягивании диалога, не будут растягиваться вместе с ним. и если хочется, что бы оно красиво все тянулось, то нужно вручную писать много кода для каждого отдельного случая. кроме того, mfc вообще не умеет наделять виджеты looknfeel`лами. это означает, что виджеты не обладают поведением. (нельзя без программирования настраивать поведение) все что они могут - это статически сидеть на форме, и реагировать на события. код реакции нужно каждый раз прописывать вручную. mfc не инкапсулирует работу с системой. и не избавит вас от необходимости иметь навыки работы с winapi это означает, что для работы вам придется понимать принципы взаимодействия системы с приложением. --------------------------------------------------------------------------------------------------------------------- резюмируя: если нужно по-быстрому запилить какой нибудь не сильно сложный диалог - вполне годное. при некоторой сноровке простенькие диалоги можно очень быстро формошлепить. зависимость только от системных библиотек самой винды, а значит, с ними не приходится геммороиться, что радует. но об удобствах цивилизации (дельфин, кутешечка) можно забыть. и если есть возможность работать с чем то другим, то лучше рассмотреть альтернативы, потому что хуже, чем mfc представить себе сложно. (если только голый winapi).
2
|
||
|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
||
| 04.07.2015, 14:20 [ТС] | ||
|
Мне не нужен сложный дизайн (анимации, хитрые компоненты, сложные списки)! Предстоит нарисовать несколько своих ОЧЕНЬ сложных компонент(графики с зумом и вращением + особый текстовый редактор цветных строк - каждая строка рисуется и красится своей формулой)! Вокруг которых будет много простых кнопочек, едиторов и галочек. Кнопки нужны в основном для отладки моего компонента и для удобства во время будут часто переноситься. В коде это писать не хочется - хочется "схватил и поставил там где удобнее", если надо с мини размера развернул на пол экрана... Не по теме: Когда писал на Делфи подобное (хочу портировать) тест каждой функции посадил на кнопку со счетчиком(текст-количество успешных тестов), галочкой(исключить из массовых автотестов) и панелькой-лампочкой (цветом состояние). Мог копировать и вставлять куда хочу. Мог поменять размер любой кнопки для удобного нажатия мышкой. Мог переносить кнопки между закладками (копи-пасте между "разделами" тестов). В wxWidgets ничего этого не нашел!!!! Количество таких элементов зашкаливало за 300-400 на форму (полное количество обьектов 464 - специально подсчитал). Для текущих отлаживаемых команд я менял шрифт и цвет текста. Делалось это почти в один клик на параметрах формы. Через текст я это буду очень долго писать и держать весь дизайн в голове и тексте, а не перед глазами (когда в голове должны быть только формулы)! Я понимаю что через код можно менять ВСЕ! Но... зачем тогда визуальный редактор??? p.s. я так и не нашел аналог Splitter в визуальных компонентах - хотя что-то в примерах кода встречал...
0
|
||
|
70 / 64 / 40
Регистрация: 17.02.2014
Сообщений: 265
|
|
| 04.07.2015, 14:31 | |
|
Попробуйте тогда посмотреть wxFormBuilder, но там похоже надо копи-пастить сгенерированный код в проект кодблокса.
2
|
|
| 04.07.2015, 14:31 | |
|
Помогаю со студенческими работами здесь
19
WinAPI vs wxWidgets Mingw и wxWidgets Имитация действий в wxWidgets WxWidgets wxPuts ошибка WxWidgets - в консольном приложении Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|