logo

Introducció a la programació GUI en C++

En C++, la programació de la interfície gràfica d'usuari (GUI) és important en el desenvolupament d'aplicacions modernes on els usuaris tenen bons gràfics per treballar. Tot i que C++ s'associa habitualment amb la programació del sistema i l'escriptura de jocs, pot ser una excel·lent alternativa a l'escriptura de GUI. En aquest article, parlarem de la programació GUI en C++, algunes biblioteques GUI populars per a C++ i com crear una aplicació GUI bàsica en C++.

Requisits previs: Fonaments de C++, C++ OOP, algunes biblioteques GUI.



Què és la GUI (Graphical User Interface)?

La interfície gràfica d'usuari (GUI) és una interfície d'aplicació visual que es proporciona mitjançant gràfics com finestres, quadres de text i botons mitjançant els quals els usuaris poden comunicar-se amb el programari. La GUI ofereix una plataforma interactiva i fàcil d'utilitzar en comparació amb la interfície de línia d'ordres (CLI), ja que els usuaris poden utilitzar el ratolí o altres dispositius d'entrada com ara una pantalla tàctil, etc. sense dependre només del teclat.

Conceptes principals de programació GUI

Una interfície gràfica d'usuari (GUI) implica dissenyar finestres, diàlegs, botons, etc., que són tots components interactius de la interfície d'usuari. A continuació, controlem aquests ginys mitjançant controladors d'esdeveniments com onClick, onHover, etc.

Els conceptes principals de la programació GUI són:



Ginys

Una interfície gràfica d'usuari (GUI) està formada per widgets. Per exemple, aquests inclouen botons, quadres de text, etiquetes, etc. Les propietats i comportaments de cada widget es poden personalitzar d'acord amb les necessitats específiques d'una aplicació. En general, hi ha els ginys següents en una biblioteca GUI:

  1. Finestra: Un marc de finestra de nivell superior que allotja altres ginys dins de si mateix.
  2. Botó: Un botó clicable que té algun esdeveniment associat al seu clic.
  3. Etiqueta: Text senzill de només lectura
  4. casella de selecció : Caixa que ofereix les opcions d'activació o desactivació.
  5. Botó de ràdio: Caixa que ofereix les opcions d'activació o desactivació però només podem triar un botó d'opció en un grup.
  6. Quadre desplegable/Combo : obre un menú desplegable quan es fa clic. Només es pot mostrar un element en el formulari no obert.
  7. Caixa de text: Àrea de text editable.
  8. Caixa de llista: El quadre amb diversos elements i una barra de desplaçament per recórrer tots ells.
  9. Control lliscant: Un giny de navegació utilitzat per moure's per l'aplicació.
  10. Menú: El menú que es mostra a la part superior ofereix diferents opcions per a l'usuari de l'aplicació.
  11. Caixa de diàleg: Un quadre que es mostra a la part superior d'una finestra. De vegades per mostrar la notificació.
  12. Quadrícula: S'utilitza per a la gestió del disseny de la interfície d'usuari.

Gestió de maquetació

Les aplicacions GUI s'han d'optimitzar per a diverses pantalles de diferents mides, resolucions, etc., la qual cosa busca mantenir una interfície d'usuari atractiva però eficaç amb els diferents ginys organitzats a la pantalla.

Gestió d'esdeveniments

En la programació de la GUI, els esdeveniments com els clics de botons o les pressions de tecles són crítics. Aquests esdeveniments són gestionats per l'aplicació per tal que pugui seguir les accions de l'usuari. Hi ha diferents esdeveniments associats amb diferents ginys. Per exemple, per a un botó en què es pot fer clic, els esdeveniments associats són:



  1. Feu clic a Esdeveniment
  2. Esdeveniment de moviment del ratolí
  3. Focus en l'esdeveniment
  4. Esdeveniment Focus Out

Biblioteques GUI populars per a C++

C++ té moltes biblioteques GUI independents de la plataforma que es poden utilitzar per desenvolupar una aplicació GUI. Alguns dels populars són:

  1. gtkmm
  2. Qt
  3. wxWidgets
  4. Benvolgut ImuGui

Exemple d'aplicació C++ GUI

Utilitzarem les eines següents per als programes següents:

  1. Biblioteca Qt : La biblioteca GUI del nostre programa.
  2. Qt Designer: Un dissenyador de plantilles GUI interactiu per a Qt.
  3. Qt Creator: IDE per a aplicacions GUI de Qt

Ara, veurem casos reals de programació GUI amb C++ i Qt. Anem a desenvolupar una aplicació bàsica de Hello World, un botó i quan es faci clic en el botó, apareixerà un quadre de diàleg amb el text Hello World escrit. Ho implementarem seguint aquests passos:

Pas 1: Creació d'un projecte Qt

Obrirem el Qt Creator i crearem un nou projecte de tipus Qt Widget Application. Introduïu el nom, seleccioneu la ubicació i ja esteu a punt. El creador de Qt crearà el projecte amb tots els fitxers necessaris.

creació-projecte

Pas 2: Disseny de la finestra

Aleshores obrirem el fitxer mainWindow.ui . Aquest fitxer conté la interfície d'usuari de l'aplicació. Afegirem una etiqueta de text utilitzant el dissenyador que s'acaba d'obrir.

tuples java

Ara els nostres fitxers contindran el codi següent:

finestra principal.h

C++




#ifndef MAINWINDOW_H> #define MAINWINDOW_H> > #include> > QT_BEGIN_NAMESPACE> namespace> Ui {>class> MainWindow; }> QT_END_NAMESPACE> > class> MainWindow :>public> QMainWindow> {> >Q_OBJECT> > public>:> >MainWindow(QWidget *parent = nullptr);> >~MainWindow();> > private>:> >Ui::MainWindow *ui;> };> #endif // MAINWINDOW_H>

>

>

com cridar un mètode en java

main.cpp

C++




#include 'mainwindow.h'> > #include> > int> main(>int> argc,>char> *argv[])> {> >QApplication a(argc, argv);> >MainWindow w;> >w.show();> >return> a.exec();> }>

>

>

iterador de mapes java

mainWindow.cpp

C++




#include 'mainwindow.h'> #include './ui_mainwindow.h'> > MainWindow::MainWindow(QWidget *parent)> >: QMainWindow(parent)> >, ui(>new> Ui::MainWindow)> {> >ui->setupUi(>this>);> }> > MainWindow::~MainWindow()> {> >delete> ui;> }>

>

>

ssh forma completa

mainWindow.ui

XML




xml version='1.0' encoding='UTF-8'?> MainWindowclass> 0x>0y>800 d'amplada>600height> rect> propietat> MainWindowsstring> propietat> 260x>140 anys>81 amplada>71height> rect> propietat> Hola Worldstring> propietat> giny> giny> 0x>0y>800 d'amplada>22height> rect> propietat> widget>giny> ui>>>

>

>

Tingueu en compte que mainWindow.ui està escrit en XML. És perquè Qt escriu els seus fitxers d'IU en XML.

Pas 4: crear i executar

Podem construir i executar el projecte Qt a Qt creator amb un sol clic.

Sortida

Hola món

Avantatges de les aplicacions GUI

Les aplicacions GUI ofereixen diversos avantatges, que contribueixen a una millor experiència d'usuari i un desenvolupament racionalitzat:

  • Interfície fàcil d'utilitzar: L'ús d'interfícies gràfiques d'usuari (GUI) proporciona un enfocament senzill i fàcil d'utilitzar cap a les aplicacions de programari en comparació amb altres enfocaments que necessitarien més temps.
  • Interactivitat millorada: Inclou funcions interactives com botons, menús desplegables, casella de selecció i control lliscant que donen als usuaris poder sobre les seves experiències.
  • Compatibilitat entre plataformes: Els idiomes com Qt permeten la creació d'aplicacions GUI per a Windows, macOS, Linux amb C++.
  • Prototips ràpids: La presència de molts constructors de GUI i eines de disseny als marcs de GUI promou la creació ràpida de prototips d'interfícies, fent que tot el procés de desenvolupament sigui més ràpid.