• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pisanie GUI w gtk+

VPS Starter Arubacloud
0 głosów
245 wizyt
pytanie zadane 16 marca 2018 w C i C++ przez Jakub 0 Pasjonat (23,120 p.)

Witam, uczę się z książki c++ Szkoła Programowania. Jeszcze jeden rozdział odnośnie przestrzeni nazw  i zaczyna mi się OOP. Znam podstawy programowania obiektowego z kursu P.MZ ale już wiele pozapominałem. Ogólnie ostro się za nie zabiorę w książce, żeby wiedzę od razu stosować w praktyce to na  wakacje planuje uczyć się SFML'a. Teraz już jednak by spróbować coś innego równocześnie uczę się pisać GUI, wybrałem do tego bibliotekę GTK+ ponieważ jest dość lekka, mała, przenośna oraz jest do niej sporo poradników i po polsku i angielsku. (na takiego kolosa jak Qt nie jestem jednak jeszcze gotowy). Jednak jej składnia (niczym z czystego C) nie jest zbyt wygodna :/ Tu jakoś to rozbiłem na funkcje:

#include <gtk/gtk.h>
#include <iostream>

///-------------------------------------------------------------------------------------------------

void createWindow(GtkWidget **window){
    *window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    gtk_window_set_default_size (GTK_WINDOW(*window), 300, 200);
    gtk_window_set_position(GTK_WINDOW(*window), GTK_WIN_POS_CENTER);
    gtk_window_set_title (GTK_WINDOW(*window), "program in GTK+");
}

///---------------------------------------------------------------------------------------------------

void createResources(GtkWidget **window, GtkWidget **container, GtkWidget **button){
    *container = gtk_fixed_new();
    gtk_container_add(GTK_CONTAINER(*window), *container);

    *button = gtk_button_new_with_label("click me!");
    gtk_widget_set_size_request(*button, 180, 35);
    gtk_fixed_put(GTK_FIXED(*container), *button, 10, 10);
}


///----------------------------------------------------------------------------------------------------

int main(int argc, char *argv[])
{
    std::setlocale(LC_ALL, "en_US.UTF-8");

    GtkWidget *window;
    GtkWidget *container;
    GtkWidget *button;

    gtk_init (&argc, &argv);

    createWindow(&window);
    createResources(&window, &container, &button);

    gtk_widget_show_all(window);

    gtk_main ();

    return 0;
}

///-------------------------------------------------------------------------------------------------

Oczywiście najważniejsza jest funkcjonalność, tym bardziej że w GTK+ raczej nie będę pisał niczego większego. Chce ją na teraz do prostych zastosowań zanim będę umiał obiektowość na wysokim poziomie tak by myśleć o Qt.

Nie wiem jednak czy ta biblioteka poza zabawą coś mnie nauczy... Czy według was warto poświęcić na nią czas czy lepiej szybciej iść z książką?

Dziękuje za rady i pozdrawiam :)

 

komentarz 16 marca 2018 przez adrian17 Ekspert (344,100 p.)

Jednak jej składnia (niczym z czystego C)

(gtk+ to jest C :) )

komentarz 16 marca 2018 przez Jakub 0 Pasjonat (23,120 p.)
To fakt, ale GTK+  w przeciwieństwie do czystego GTK daje możliwość programowania obiektowego, czyli została przewidziana dla c++ też. Coś takiego słyszałem...
1
komentarz 16 marca 2018 przez adrian17 Ekspert (344,100 p.)
Z tego co wiem, nie do końca; patrz: https://stackoverflow.com/a/5830869/2468469
komentarz 16 marca 2018 przez Jakub 0 Pasjonat (23,120 p.)
Cóż, coś musiałem źle usłyszeć.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
0 odpowiedzi 203 wizyt
pytanie zadane 11 stycznia 2021 w Inne języki przez overcq Pasjonat (21,540 p.)
+1 głos
1 odpowiedź 149 wizyt
pytanie zadane 28 marca 2018 w C i C++ przez Kacper Sas Dyskutant (8,460 p.)
0 głosów
1 odpowiedź 264 wizyt
pytanie zadane 22 listopada 2017 w C i C++ przez 1SnajpeR7 Użytkownik (930 p.)

92,452 zapytań

141,262 odpowiedzi

319,077 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...