Есть ли графический интерфейс для wxwidgets в Linux с Eclipse? - PullRequest
5 голосов
/ 17 мая 2011

Я хочу создать приложение с графическим интерфейсом, используя C ++ и wxWidgets.Проблема в том, что я не могу найти IDE с GUI (Form Designer) для использования.Я надеюсь, что у eclipse есть что-то вроде конструктора QT.

какие-либо решения ???

Ответы [ 7 ]

4 голосов
/ 07 июля 2011

wxFormBuilder довольно хорошо. Он стабилен и поддерживает большинство стандартных виджетов.

2 голосов
/ 17 мая 2011

Плагин wxsmith для Code :: Blocks стоит проверить. Это означало бы переключение IDE, но C :: B кроссплатформенный, как Eclipse.

2 голосов
/ 17 мая 2011

Хотя я не уверен в интеграции с Eclipse, вы можете запустить wxGlade для проектирования интерфейсов, а затем экспортировать код.

1 голос
/ 02 апреля 2013

Как указала ravenspoint, скорее всего, гораздо лучше кодировать ваши формы.Это хорошо работает с затмением (для тех, кто заинтересован).run wx-config --cppflags и вставьте directories/headers в настройки проекта eclipse, затем запустите wx-configure --libs и вставьте -L и -l в настройки проекта eclipse, и вы готовы к работе.

Убедитесь, что вытакже установите флаги, показанные в wx-config.

0 голосов
/ 18 ноября 2012

IMO, следует избегать использования таких инструментов «конструктора форм».Они как костыли для людей, которые не знают, что делают.Проблема в том, что они генерируют огромное количество кода, который пользователь не понимает.Они отлично подходят для быстрой разработки быстрого прототипа игрушечного приложения.Однако однажды одно из ваших приложений может перерасти в успешный продукт, который необходимо поддерживать.Угадай, что?Инструменты ограничены и содержат ошибки, и их нельзя использовать для поддержки графического интерфейса любой реальной сложности.Итак, весь этот необслуживаемый код, сгенерированный инструментом, должен быть переписан кем-то, кто использовал инструмент и поэтому не научился писать код GUI!

Этот процесс произошел со мной пару разназад во времена, когда GUI впервые стали популярными.Затем я узнал, что ничто не заменит обучения кодированию GUI, и единственный способ сделать это - закатать рукава и написать код.

Я понимаю, почему инструменты конструктора форм так популярны.Многие GUI-структуры являются основной болью для кода: требуется множество кодов, указывающих верхнюю левую и нижнюю правую позицию пикселя каждого последнего элемента управления - все это нужно менять всякий раз, когда что-либо перемещается.(Здесь приходят на ум MFC и .NET)

Именно здесь wxWidgets набирает очки.Если вы научитесь использовать sizers , вам больше не придется указывать позицию в пикселях.Итак, это мой ответ на первоначальный вопрос: избегайте всех этих инструментов для создания форм сомнительного качества и сомнительной интеграции с Eclipse, но вместо этого научитесь использовать sizer, чтобы вы могли кодировать свои GUI непосредственно в окне редактора Eclipse.

В качестве простого примера здесь приведен код для формы.

wxPanel * panel = new wxPanel(this,-1,wxPoint(-1,-1),wxSize(1000,1000));

wxSizerFlags szrflags(0);
szrflags.Border(wxALL,5);

wxBoxSizer * szrCRUDForm = new wxBoxSizer(wxVERTICAL );

wxFlexGridSizer * szr = new wxFlexGridSizer(2,1,1);

wxStaticText * field1text =  new wxStaticText(panel,-1,"Entry Field #1");
wxTextCtrl   * field1ctrl =  new wxTextCtrl(panel,-1,"              ");
wxStaticText * field2text =  new wxStaticText(panel,-1,"Second Entry Field");
wxTextCtrl   * field2ctrl =  new wxTextCtrl(panel,-1,"              ");
wxStaticText * field3text =  new wxStaticText(panel,-1,
    "A very big entry field\n"
    "with a lot of description\n"
    "Spread over several long lines of text");
wxTextCtrl   * field3ctrl =  new wxTextCtrl(panel,-1,"",wxPoint(-1,-1),
                                            wxSize(600,-1));
wxStaticText * field4text =  new wxStaticText(panel,-1,"Yet another Field");
wxTextCtrl   * field4ctrl =  new wxTextCtrl(panel,-1,"              ");

szr->Add( field1text,szrflags );
szr->Add( field1ctrl,szrflags );
szr->Add( field2text,szrflags );
szr->Add( field2ctrl,szrflags );
szr->Add( field3text,szrflags );
szr->Add( field3ctrl,szrflags );
szr->Add( field4text,szrflags );
szr->Add( field4ctrl,szrflags );

wxBoxSizer * szrButtons = new wxBoxSizer( wxHORIZONTAL );
szrButtons->Add( new wxButton(panel,-1,L"CREATE"),szrflags);
szrButtons->Add( new wxButton(panel,-1,L"READ"),szrflags);
szrButtons->Add( new wxButton(panel,-1,L"UPDATE"),szrflags);
szrButtons->Add( new wxButton(panel,-1,L"DELETE"),szrflags);

szrCRUDForm->Add( szr );
szrCRUDForm->Add( szrButtons );

SetSizer(szrCRUDForm);
Produces the following GUI, without requiring any pushing or pulling

Создает следующий графический интерфейс

enter image description here

Вот учебник sizer http://zetcode.com/tutorials/wxwidgetstutorial/layoutmanagement/

0 голосов
/ 17 ноября 2011

Если вы ищете IDE с визуальным редактором форм, правильный путь - Code :: Blocks .Он имеет встроенный плагин wxSmith .Работать так просто.Я не знаю, есть ли какой-нибудь плагин для Eclipse, но Eclipse + wxFormBuilder - один из лучших вариантов для меня.

0 голосов
/ 30 июня 2011

Philasmicos имеет бесплатный графический дизайнер wxWidgets для Windows и Linux.

Вы можете найти его здесь

Я не знаю, почему это только нанемецкий сайт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...