Пишем GUI з wxWidgets. Підготовка

Отож, як і обіцяв, вирішив почати потроху описувати свій досвід освоєння цього GUI-фреймворку. По-перше пара слів про сам wxWidgets. Це вже досить старий і тому стабільний і потужний фреймворк для розробки графічних інтерфейсів. Він кросплатформенний (є версії для Windows, Linux, MacOS та кількох інших, навіть для OS/2) і доступний у варіантах для декількох мов програмування (наприклад, C++, Python, Perl, C#, тощо). Як заявляють розробники прямо на головній сторінці сайту, основною особливістю їх фреймворку є те, що він повністю базується на “рідних” для того чи іншого середовища контролах, а не емулює їх, як робить більшість інших кросплатформенних GUI-бібліотек. За рахунок цього бінарний код виходить дуже компактним, а графіка виглядає природно для відповідної системи. Отака цікава штука. Трохи забігаючи наперед скажу, що, wxWidgets, звісно, не такі приємні в розробці як Qt (там взагалі просто сідаєш і пишеш – настільки логічно все побудовано, а кращої документації я ще не бачив ні до чого), але водночас після декількох днів роботи з ним він мені починає подобатись все більше і більше.

Ось така цікава штука цей wxWidgets. А тепер перейдемо власне до підготовчих кроків, які доведеться зробити перед тим як розпочати перший проект. Наразі я опишу процес для Win32, але згодом хочу спробувати і відповідно занотувати цю саму процедуру для Linux.

Перше, що нам знадобиться – це скачати вихідні коди фреймворку, щоб потім зібрати на вашій машині версію оптимізовану для вашого компілятора. До речі, цікава штука: воно також має працювати з Visual Studio 2008 Express, так що таким чином можна створювати ПЗ абсолютно легально. Далі одразу рекомендую обзавестись дизайнером форм, щоб економити час на рутині. Офіційного редактора від розробників немає, а є лише купа редакторів від сторонніх виробників. Я спробував декілька і для себе зупинився на wxFormBuilder. Якщо хтось знайде щось зручніше і потужніше – з радістю вислухаю.

Тож завантажуємо і встановлюємо відповідну версію wxWidgets. Там знаходимо в підкаталозі “builds/msw” того місця, куди ви встановили wxWidgets проект “wx.dsw”, відкриваємо його і при необхідності погоджуємося на пропозицію студії сконвертувати його в її рідну версію. Далі обираємо тип білда. Я поки що пробував лише звичайні Release та Debug – це звичайні версії для статичної лінковки. Робимо білд. До речі, порівняно з тим-таки Qt збирається wxWidgets просто миттєво. Тепер перевіримо чи все у нас гаразд. В каталозі “samples” відкриваємо проект “samples.dsw”. В ньому знаходимо підпроект minimal і збираємо лише його (причому в одній з конфігурацій, в яких збирали саму бібліотеку). Можна було б, звісно, і всі sample-проекти при бажанні скомпілити, але то марна трата часу. Якщо minimal нормально скомпілювався, злінкувався та запустився, значить все чудово. Тепер не забудьте прописати шляхи до хедерів та скомпільованиз бібліотек у Visual Studio: в Tools→Options→Projects and Solutions→VC++ Directories відповідно для “Include files” прописуємо шлях до хедерів, а в “Library files” – шлях до щойно зібраних бібліотек.

Якщо хто хоче подивитись як описане вище виглядають вживу, можу запропонувати оцей англомовний скрінкаст (єдина відмінність – там шляхи до хедерів та бібліотек прописуються через vsprops-файл):

Ну і на всяк випадок лінки на рекомендації по встановленню під різні версії студії:

Ну і поки що все. Наступного разу створимо свою в міру простеньку форму і запустимо її 🙂