GUI означава графичен потребителски интерфейс. Те са съществена част от съвременната разработка на софтуер. Графичните потребителски интерфейси позволяват на разработчиците да създават приложения, с които потребителите могат лесно да взаимодействат. C++ е мощен език за програмиране, който се използва широко в разработването на сложни софтуерни системи. В тази статия ще проучим как да създаваме GUI в C++, като използваме различни библиотеки и рамки.
Какво е GUI?
Графичният потребителски интерфейс или GUI позволява на потребителите да взаимодействат с компютър с помощта на визуални елементи като бутони, менюта и диалогови прозорци. GUI предоставят лесен за използване и интуитивен интерфейс, който позволява на потребителите да изпълняват задачи бързо и ефективно. Те се използват широко в приложения като уеб браузъри, медийни плейъри и офис пакети.
Защо C++ за разработка на GUI?
C++ е мощен език за програмиране. С помощта на C++ можем да разработваме сложни софтуерни системи, включително GUI. Някои от причините, поради които C++ е популярен избор за разработка на GUI, включват:
Библиотеки и рамки за разработка на C++ GUI
Има толкова много библиотеки и рамки, налични за разработка на C++ GUI. Нека да разгледаме някои от най-популярните опции.
1. Qt
Qt е най-популярният GUI инструментариум с отворен код. Той се използва широко за разработване на междуплатформени GUI приложения. Той предоставя изчерпателен набор от инструменти и библиотеки за изграждане на модерни GUI приложения, включително поддръжка за въвеждане на базата на докосване и жестове, усъвършенствана графика и мултимедия.
Програма 1:
#include #include int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); char myoutput [60]; int stringlength, x=4, y=10; stringlength = sprintf(myoutput, '%d plus %d equals %d', x, y, x+y); printf ('[%s] is a string that is %d characters long. ', myoutput, stringlength); return a.exec(); }
Изход:
форматиране на java низове
Обяснение
Тази C++ програма използва функцията sprintf за форматиране на низ и функцията printf за отпечатване на форматирания низ в конзолата. Той декларира някои променливи, присвоява им стойности, форматира низ и го извежда на конзолата.
2. wxWidgets
wxWidgets е друг популярен крос-платформен GUI инструментариум. Той предоставя набор от инструменти и библиотеки за изграждане на модерни GUI приложения. Той поддържа широк набор от платформи, включително Windows, Linux и macOS.
Програма 2:
#include 'wx/wx.h' #include 'wx/wxprec.h' #include 'hello.h'IMPLEMENT_APP(HelloWorldApp)bool HelloWorldApp::OnInit() { wxFrame *frame = new wxFrame((wxFrame*) NULL, -1, _T('Hello wxWidgets World')); frame->CreateStatusBar(); frame->SetStatusText(_T('Hello World')); frame->Show(true); SetTopWindow(frame); return true; }
Изход:
Обяснение
Това е основен код на wxWidgets, който създава прозорец с лента на състоянието и показва текста „Hello World“. Класът HelloWorldApp е дефиниран за внедряване на приложението. Функцията OnInit() инициализира приложението и създава нов кадър с посоченото заглавие. Функцията CreateStatusBar() създава лента на състоянието в долната част на прозореца, а SetStatusText() задава текста, който да се показва в лентата на състоянието. И накрая, функцията Show() показва прозореца, а SetTopWindow() задава рамката като прозорец от най-високо ниво.
3. FLTK
Това означава Fast Light Toolkit. Това е крос-платформен GUI инструментариум. Той предоставя лек и бърз набор от инструменти и библиотеки за изграждане на GUI приложения. Това е популярен избор за изграждане на приложения, които изискват малък отпечатък или имат строги изисквания за производителност.
Програма 3:
ограничения на електронното банкиране
#include #include #include using namespace fltk; int main(int argc, char **argv) { Window *window = new Window(300, 180); window->begin(); Widget *box = new Widget(20, 40, 260, 100, 'Hello, World!'); box->box(UP_BOX); box->labelfont(HELVETICA_BOLD_ITALIC); box->labelsize(36); box->labeltype(SHADOW_LABEL); window->end(); window->show(argc, argv); return run(); }
Изход:
Обяснение
Този код използва библиотеката fltk, за да създаде прозорец с етикетирана джаджа, която казва „Здравей, свят!“. Кутията има удебелен курсив, размер 36 и етикет в сянка. Прозорецът е с размер 300 x 180 пиксела и се показва на екрана с помощта на функцията show(). Функцията run() стартира основния цикъл на събитията, за да обработва въведеното от потребителя и поддържа прозореца видим, докато потребителят не го затвори.
4. SDL
Това означава Simple DirectMedia Layer. Това е мултиплатформена мултимедийна библиотека. Той предоставя набор от инструменти и библиотеки за изграждане на игри и мултимедийни приложения. Той включва аудио, видео, входни устройства и мрежова поддръжка, което го прави универсална опция за изграждане на богати на мултимедия GUI приложения.
Програма 4:
#include #include #include int main(int argc, char *argv[]) { // returns zero on success else non-zero if (SDL_Init(SDL_INIT_EVERYTHING) != 0) { printf('error initializing SDL: %s ', SDL_GetError()); } SDL_Window* win = SDL_CreateWindow('GAME', SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 1000, 1000, 0); while (1) ; return 0; }
Изход:
Обяснение
Това е основна SDL програма, написана на език C. Той инициализира SDL библиотеката с помощта на SDL_Init(), създава прозорец с помощта на SDL_CreateWindow() и влиза в безкраен цикъл с помощта на while(1). Цикълът не прави нищо и просто чака потребителят да затвори прозореца или да излезе от програмата. Ако има грешка при инициализиране на SDL, се отпечатва съобщение за грешка с помощта на функцията printf(). Програмата връща 0 при успех.
Заключение
C++ предоставя мощен и ефективен език за програмиране за разработване на GUI приложения. Има широк набор от библиотеки и рамки. Разработчиците имат много възможности, когато става въпрос за изграждане на техните приложения. Независимо дали разработчикът избере Qt, wxWidgets, FLTK или SDL, той може да създаде богати и модерни GUI приложения, които работят на различни платформи.