GUI, Grafiksel Kullanıcı Arayüzü anlamına gelir. Bunlar modern yazılım geliştirmenin önemli bir parçasıdır. Grafik Kullanıcı Arayüzleri, geliştiricilerin kullanıcıların kolayca etkileşime girebileceği uygulamalar oluşturmasına olanak tanır. C++, karmaşık yazılım sistemlerinin geliştirilmesinde yaygın olarak kullanılan güçlü bir programlama dilidir. Bu makalede, çeşitli kütüphaneleri ve çerçeveleri kullanarak C++'da GUI'lerin nasıl oluşturulacağını keşfedeceğiz.
GUI nedir?
Grafik Kullanıcı Arayüzü veya GUI, kullanıcıların düğmeler, menüler ve iletişim kutuları gibi görsel öğeleri kullanarak bir bilgisayarla etkileşime girmesine olanak tanır. GUI'ler, kullanıcıların görevleri hızlı ve verimli bir şekilde gerçekleştirmelerine olanak tanıyan, kullanımı kolay ve sezgisel bir arayüz sağlar. Web tarayıcıları, medya oynatıcıları ve ofis paketleri gibi uygulamalarda yaygın olarak kullanılırlar.
GUI Geliştirme için Neden C++?
C++ güçlü bir programlama dilidir. C++'ın yardımıyla GUI'ler dahil karmaşık yazılım sistemleri geliştirebiliriz. C++'ın GUI geliştirme için popüler bir seçim olmasının nedenlerinden bazıları şunlardır:
C++ GUI Geliştirme için Kitaplıklar ve Çerçeveler
C++ GUI geliştirme için pek çok kitaplık ve çerçeve mevcuttur. En popüler seçeneklerden bazılarına göz atalım.
Java vaka bildirimi
1. Çeyrek
Qt, en popüler açık kaynaklı GUI araç takımıdır. Platformlar arası GUI uygulamaları geliştirmek için yaygın olarak kullanılır. Dokunma ve hareket tabanlı giriş, gelişmiş grafikler ve multimedya desteği de dahil olmak üzere, modern GUI uygulamaları oluşturmak için kapsamlı bir araç ve kitaplık seti sağlar.
Program 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(); }
Çıktı:
Açıklama
Bu C++ programı, bir dizeyi biçimlendirmek için sprintf işlevini ve biçimlendirilmiş dizeyi konsola yazdırmak için printf işlevini kullanır. Bazı değişkenleri bildirir, onlara değer atar, bir dizeyi biçimlendirir ve bunu konsola çıkarır.
2. wxWidget'lar
wxWidgets başka bir popüler platformlar arası GUI araç setidir. Modern GUI uygulamaları oluşturmak için bir dizi araç ve kitaplık sağlar. Windows, Linux ve macOS dahil olmak üzere çok çeşitli platformları destekler.
Program 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; }
Çıktı:
Açıklama
roma rakamları 1-100
Bu, durum çubuğu olan bir pencere oluşturan ve 'Merhaba Dünya' metnini görüntüleyen temel bir wxWidgets kodudur. HelloWorldApp sınıfı uygulamayı uygulamak için tanımlanır. OnInit() işlevi uygulamayı başlatır ve belirtilen başlıkta yeni bir çerçeve oluşturur. CreateStatusBar() işlevi, pencerenin altında bir durum çubuğu oluşturur ve SetStatusText(), durum çubuğunda görüntülenecek metni ayarlar. Son olarak Show() işlevi pencereyi gösterir ve SetTopWindow() çerçeveyi üst düzey pencere olarak ayarlar.
3.FLTK
Hızlı Işık Araç Takımı anlamına gelir. Platformlar arası bir GUI araç setidir. GUI uygulamaları oluşturmak için hafif ve hızlı bir araç ve kitaplık seti sağlar. Az yer kaplayan veya katı performans gereksinimleri olan bina uygulamaları için popüler bir seçimdir.
Program 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(); }
Çıktı:
Açıklama
Bu kod, 'Merhaba Dünya!' yazan etiketli bir kutu widget'ına sahip bir pencere oluşturmak için fltk kitaplığını kullanır. Kutunun kalın italik yazı tipi, 36 boyutu ve gölge etiketi vardır. Pencerenin boyutu 300 x 180 pikseldir ve show() işlevi kullanılarak ekranda gösterilir. run() işlevi, kullanıcı girişini işlemek için ana olay döngüsünü başlatır ve kullanıcı kapatana kadar pencereyi görünür tutar.
4.SDL
Basit DirectMedia Katmanı anlamına gelir. Platformlar arası bir multimedya kütüphanesidir. Oyunlar ve multimedya uygulamaları oluşturmaya yönelik bir dizi araç ve kitaplık sağlar. Ses, video, giriş aygıtları ve ağ desteği içerir, bu da onu multimedya açısından zengin GUI uygulamaları oluşturmak için çok yönlü bir seçenek haline getirir.
Program 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; }
Çıktı:
Açıklama
Bu, C dilinde yazılmış temel bir SDL programıdır. SDL_Init() kullanarak SDL kitaplığını başlatır, SDL_CreateWindow() kullanarak bir pencere oluşturur ve while(1) kullanarak sonsuz bir döngüye girer. Döngü hiçbir şey yapmıyor ve sadece kullanıcının pencereyi kapatmasını veya programdan çıkmasını bekliyor. SDL'yi başlatırken herhangi bir hata oluşursa, printf() işlevi kullanılarak bir hata mesajı yazdırılır. Program başarı durumunda 0 değerini döndürür.
Çözüm
C++, GUI uygulamaları geliştirmek için güçlü ve etkili bir programlama dili sağlar. Çok çeşitli kütüphanelere ve çerçevelere sahiptir. Geliştiricilerin, uygulamalarını oluşturmaya gelince birçok seçeneği var. Geliştirici ister Qt, wxWidgets, FLTK veya SDL'yi seçsin, çeşitli platformlarda çalışan zengin ve modern GUI uygulamaları oluşturabilir.