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 :)