Немного предыстории
Однажды моя группа в университете столкнулась с крайне интересным преподавателям, требования которого были значительно больше, чем то, что он нам преподаёт. Мы практически с первой минуты знакомства с этим человеком ожидали от него подвох, так и случилось. В какой-то момент наша программа по плану должна была затронуть реализацию различных алгоритмов поиска и сортировки данных. Задание об их реализации нам выдавал как раз вышеупомянутый преподаватель. Со словами о том, что мы обязаны учиться самостоятельно, преподаватель сказал нам реализовать различные алгоритмы в виде приложения с графическим интерфейсом, обязательно на C++. Важно уточнить, что на тот момент практически никто в группе не имел опыта в программировании, а про создание оконных приложений тогда и речи не шло!
Итак, теперь расскажу о всех своих попытках создать своё первое полноценное приложение на C++
Итак, настало время выполнять работу. Первым делом стоило выбрать технологию, на основе которой я бы делал интерфейс программы.
Я рассматривал несколько вариантов:
1) QT самый популярный вариант, рассматривался как основной.
2) GTK+ основным плюсом этой технологии была отличная работа под Linux (на тот момент я использовал Ubuntu)
3) wxWidgets c++ совет от преподавателя
И вот, на старте я выбирал между этими вариантами. К сожалению, QT отпал почти сразу, так как возникли сложности с лицензией. Позже я вернулся на родной Windows, в следствие чего попробовал CLI, который из коробки поддерживает Visual Studio. Однако, такой вариант меня не устроил, так как архитектура самого проекта мне не понравилась, да и хотелось сделать работу немного более оригинальной. GTK+ отпал в связи с переходом на Windows. Так я и начал осваивать wxWidgets.
Наконец-то к сути
Приступив к изучению инструмента я столкнулся с неприятной реальностью. Адекватных гайдов по WX на русском практически нет. Но от этого я стал читать иностранные ресурсы и понял важнейшее преимущество данного фреймворка. Программист может создать собственную архитектуру без каких-либо танцев с бубном. Почитав множество иностранных уроков, я выбрал самый простой вариант проекта: 2 класса, один наследуется от класса wxApp, а второй - от wxFrame. Очень грубо говоря, первый класс отвечает за отображение окна приложения, а второй занимается всем, что внутри окна происходит.
Наверное, стоит упомянуть, что я принципиально не использовал конструктор интерфейсов, так как обожаю создавать интерфейс исключительно кодом. Но если читателю станет интересен этот момент, то я готов написать про то как установить конструктор.
Заключение
Что же, это был краткий рассказ о том, как я постигал способы создания графического интерфейса программ на C++. От прочитавших очень жду комментариев с предложениями насчёт дальнейших статей. Стоит ли рассказывать про более простое программирование или же углубиться в данную тему и рассказать про WX намного подробнее?
Примечание: Если под этим постом появится хотя бы три комментария, я приложу ссылку на готовый проект на GitHub.
Порадуй студента - подпишись!