Для запуска wxWidgets C++ нужен легкий толчок

Таким образом, я изучал C# для подобного год теперь (мне 20 лет), и я становлюсь довольно уверенным относительно него. Я также влезал в C++ время от времени. Например, просто недавно я следовал учебным руководствам OpenGL Nehe для C++, и я нахожу интересным способом учиться.

Я хочу начать смотреть на создание кросс-платформенного программного обеспечения GUI после того, как я споткнулся через эту библиотеку под названием FLTK (жидкость что-то скорее). После наконец и мучительно то, чтобы заставлять это работать я нашел, что он обновляющийся знал, что существуют решения для создания GUI в C++, однако я думаю, что FLTK выглядел довольно старым.

Таким образом, я погуглил вокруг для некоторых более новых платформ GUI и решил начать играть с wxWidgets (отклонил QT из-за лицензирования). Я загрузил его, скомпилировал его и надеялся видеть, были ли какие-либо плагины IDE для разработки RAD, поскольку можно предположить идти от перетаскивания компонент на форму в C#, я надеялся на что-то подобное.

Я узнал что код:: блоки имеют что-то вроде этого, таким образом, я испытал это. Это было в порядке, но вещью, которая выключила меня, было ужасное завершение кода; это только показало бы участникам и методам в текущем объекте и ничем для #included заголовочных файлов. Я понимаю, что завершение/IntelliSense кода не легко для C++, но Visual Studio 2008 обрабатывает его довольно хороший. Я действительно находил некоторые другие инструменты RAD как wxFormBuilder, но он стоит денег, не чего-то, что я хочу сделать для того, чтобы просто учиться.

Таким образом, мой вопрос TLDR состоит в том, если у кого-либо был опыт с wxWidgets? Вы просто разрабатываете в любом IDE, Вы довольны и просто кодируете GUI? Значение никаких визуальных помощников? Возможно, Вы могли дать мне пошаговое перемещение в том, какое направление я должен идти :)

Спасибо, это - также мое первое сообщение на этом сайте, хотя я считал много потоков прежде, которые помогли мне решить обильные проблемы.Удачи!

5
задан Peter Mortensen 22 January 2010 в 20:00
поделиться

7 ответов

Мое предложение состоит в том, чтобы узнать, как сделать макет GUI с помощью WXWidgets в коде, то когда вы хорошо знаете, узнаете, как использовать GUI Tools.

Делать этот вид работы вручную на некоторое время, дает вам понимание того, что вам нужно («Хорошо, мне нужен WXSizer, вертикальный, чтобы поставить эти два горизонтальных WXSizer в, где я поставил свой WXStatictext и Wxtextctl для каждого Линия ... ") ... где, как я думаю, если бы вы начали с инструментами GUI, вы просто склонны раздражать, потому что (в последний раз я посмотрел) Никто из них не перетащил редакторов, как вы получаете с .NET Отказ

9
ответ дан 13 December 2019 в 19:27
поделиться

Определенно дайте код :: блоки Другой попыток. Это замечательная среда для работы с WxWidgets In. Он поставляется с дизайнером формы и шаблонами для проектов WXWidgets, поэтому я не могу представить работу без него.

Также для введения хорошего новичка в WXWidgets, попробуйте этой страницы . Это помогло мне много, когда я начал с него.

2
ответ дан 13 December 2019 в 19:27
поделиться

WXFormBuilder, но он стоит денег

WXFormBuilder - бесплатный и открытый источник

также Visual Studio лучше всего для кодирования C ++ в WXWidgets, но вы столкнетесь с множеством вопросов на Linux из-за того, как много обрабатывает визуальную студию вещей, таких как имена файлов, вы должны взять дополнительную помощь для чувствительности к регистру.

Также относительно графического интерфейса добавьте WXFormBuilder к решению Visual Studio, добавьте обработчик типа файлов в Visual Studio. Теперь просто дважды щелкните по нему и добавьте свои диалоги, как вы делаете это в C #. Просто добавьте сгенерированные файлы кода в проект Visual Studio один раз, и вы закончите.

Очень легко использовать Visual Studio с программированием GUI в WXWidgets.

Также не забудьте посмотреть редактор Codelite , если вы хотите портировать на Linux. Он очень совместим с проектами Visual Studio и ярлыками.

0
ответ дан 13 December 2019 в 19:27
поделиться

Я использую wxwidgets без использования конструктора перетаскивания. Для этого подхода явно есть недостатки, но преимущество в том, что у вас нет никакого ужасного автоматически сгенерированного кода для решения. В прошлом я обнаружил, имея такой код в середине моего проекта, вызвал различные типы горе - особенно если вы решите, что нужны некоторые серьезные изменения, часто необходимо начинать с нуля, потому что дизайнеры формы намного лучше на «написании «В отличие от« редактирования ».

Для простых приложений вы можете собрать UI, используя смесь настроенных и стандартных виджетов без слишком больших сложностей. Проверьте образцы и демонстрацию WxWidgets, которые используют этот подход. Моя шахматная приложение (см. Мой сайт) тоже использует этот подход.

Более сложная UI может быть реализована, написав что-то особенное на более высоком уровне абстракции. Такое, о чем я думаю, будет подсистемой, которая принимает гибкие запросы высокого уровня для обеспечения различных типов функциональности пользовательского интерфейса, а затем сортирует детали элементов управления для создания и позиционирования и т. Д. Тех. Это своего рода мою техническую фантазию, но я никогда не пытался это сделать. На самом деле, довольно примитивный объект этого типа уже доступен и используется в упомянутых демонстрации демо; Это называется «Sizer» (класс WXSizer) и в основном является управляющим контейнером.

Наконец-то я указывал, что проблемы с лицензией QT в основном ушли, поскольку Nokia купила Trolltech и сделала его «более» бесплатно (LGPL лицензия). Многие люди думают, что Qt - это путь в эти дни. Я очень доволен wxwidgets, но определенно оцениваю qyt серьезно один день. Удачи в ваших проектах.

0
ответ дан 13 December 2019 в 19:27
поделиться

Я разработал ряд приложений GUI, используя wxwidgets - вы можете увидеть скриншоты в http://ravenspoint.com/

imho, вы должны различить дизайн графического интерфейса и реализация этого. Ожидание использовать ту же программу для разработки вашего GUI и автоматически излучать весь код для реализации дизайна, ожидает слишком много.

Программа дизайна должна быть быстрой и простой. Рекомендую http://www.balsamiq.com/

Как только вы урегулируетесь на дизайне, вы можете обратиться к кодированию. Лично я обнаружил, что размещение виджетов на панели, используя параметры WxPosition и WXSize конструкторов WxWidget, которые должны быть тривиальными - проще, чем пытаться подтолкнуть виджеты в свои точные позиции с помощью мыши.

Беда с использованием своего рода формы Builder для излучения всего кода для значительного графического интерфейса в том, что вы в конечном итоге с морской частью автоматически сгенерированного кода, который трудно найти свой путь. Если код был рукописным, Тогда вы уже знаете, где все находится.

0
ответ дан 13 December 2019 в 19:27
поделиться

Существует WXGLADE и WXFormBuilder .

Я не знаю, есть ли еще один, но WXFormBuilder, который я знаю, это свободный и открытый источник.

Вы найдете ссылки на другие инструменты на главной странице WXGLADE (http: // wxglade.sourceforge.net/).

Большая часть этих программ может выводить XRC-файлы, которые представляют собой представление XML вашего GUI. Это решает проблему сложности генерируемого кода, но не такой мощный.

Тем не менее, лично я не использую ни одного из этих инструментов, кроме иногда, чтобы увидеть, что он будет выглядеть, прежде чем я сделаю это, но никогда не генерировать код.

0
ответ дан 13 December 2019 в 19:27
поделиться

Я только что закончил делать программу hello world на wx и fltk, используя netbeans IDE. Microsoft Visual Studio WinForms или MFC были намного проще, чем любой из них. Мне нужны были кроссплатформенные возможности, поэтому я не мог использовать его для этого приложения. Я закончил fltk за гораздо меньшее время, чем wx. Программа была проще, меньше, быстрее и легче в написании. У Wx была довольно разрозненная документация и организация. Fltk был разработан еще в "старые времена", когда ценилось малое быстрое и эффективное. Возможно, поэтому он кажется вам "старым". Я старый парень, так что для меня это работает. YMMV

0
ответ дан 13 December 2019 в 19:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: