Die Grafikfenster 11 + 12 + 13 basieren auf GTK3 und sollen natürlich auch dokumentiert werden…
Der Compilerbefehl für GTK 3:
Das GTK Grafikfenster ist noch GTK3 und deshalb hier nochmal der alte GTK3 Befehl:
- g++ -o dateiname.out dateiname.cpp pkg-config –cflags –libs gtk+-3.0
Quellcode für GTK Grafikfenster 11:
#include <iostream>
#include <gtk/gtk.h>
int main(int argc, char *argv[]) {
// Initialisierung von GTK
gtk_init(&argc, &argv);
// Erstellung eines Fensters
GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
// Setzen des Titels und der Größe des Fensters
gtk_window_set_title(GTK_WINDOW(window), "GTK Grafikfenster blau");
gtk_window_set_default_size(GTK_WINDOW(window), 300, 200);
// Hintergrundfarbe des Fensters festlegen
GtkCssProvider *provider = gtk_css_provider_new();
gtk_css_provider_load_from_data(provider,"* { background-color: #4682b4; }", -1, NULL);
GtkStyleContext *context = gtk_widget_get_style_context(window);
gtk_style_context_add_provider(context,
GTK_STYLE_PROVIDER(provider),
GTK_STYLE_PROVIDER_PRIORITY_USER);
// Zeigen des Fensters
gtk_widget_show_all(window);
gtk_main();
return 0;
}
Quellcode für GTK Grafikfenster 12:
#include <iostream>
#include <glib/gprintf.h>
#include <string.h>
#include <gtk/gtk.h>
void kleine_callback (GtkWidget *w, gpointer d)
{
GtkWidget *dialog;
dialog = gtk_message_dialog_new (NULL,
GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO,
GTK_BUTTONS_CLOSE, "Hallo, Welt!");
gtk_dialog_run (GTK_DIALOG (dialog));
gtk_widget_destroy (dialog);
}
static const gchar * interface =
"<interface>"
" <object class=\"GtkUIManager\" id=\"uimanager\">"
" <child>"
" <object class=\"GtkActionGroup\" id=\"aktionen\">"
" <child>"
" <object class=\"GtkAction\" id=\"datei\">"
" <property name=\"label\">_Datei</property>"
" </object>"
" </child>"
" <child>"
" <object class=\"GtkAction\" id=\"neu\">"
" <property name=\"label\">_Neue Datei</property>"
" <signal name=\"activate\" handler=\"kleine_callback\"/>"
" </object>"
" </child>"
" <child>"
" <object class=\"GtkAction\" id=\"exit\">"
" <property name=\"label\">_Beenden</property>"
" <property name=\"stock-id\">gtk-quit</property>"
" <signal name=\"activate\" handler=\"gtk_main_quit\"/>"
" </object>"
" </child>"
" <child>"
" <object class=\"GtkAction\" id=\"bearbeiten\">"
" <property name=\"label\">_Bearbeiten</property>"
" </object>"
" </child>"
" </object>"
" </child>"
" <ui>"
" <menubar name=\"menubar\">"
" <menu action=\"datei\" >"
" <menuitem action=\"neu\" />"
" <separator />"
" <menuitem action=\"exit\" />"
" </menu>"
" <menu action=\"bearbeiten\" />"
" </menubar>"
" </ui>"
" </object>"
" "
" <object class=\"GtkWindow\" id=\"hauptfenster\" >"
" <signal name=\"destroy\" handler=\"gtk_main_quit\"/>"
" <child>"
" <object class=\"GtkVBox\" id=\"vbox-layout\">"
" <property name=\"homogeneous\">FALSE</property>"
" <child>"
" <object class=\"GtkMenuBar\" id=\"menubar\" constructor=\"uimanager\"/>"
" </child>"
" </object>"
" </child>"
" </object>"
"</interface>";
int main(int argc, char *argv[]) {
// Initialisierung von GTK
gtk_init(&argc, &argv);
// Erstellung eines Fensters
GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
// Setzen des Titels und der Größe des Fensters
gtk_window_set_title(GTK_WINDOW(window), "GTK Grafikfenster 12 blau");
gtk_window_set_default_size(GTK_WINDOW(window), 300, 200);
// Hintergrundfarbe des Fensters festlegen
GtkCssProvider *provider = gtk_css_provider_new();
gtk_css_provider_load_from_data(provider,"* { background-color: #4682b4; }", -1, NULL);
GtkStyleContext *context = gtk_widget_get_style_context(window);
gtk_style_context_add_provider(context,
GTK_STYLE_PROVIDER(provider),
GTK_STYLE_PROVIDER_PRIORITY_USER);
// Dateimenü erzeugen = Der Code nach include gtk und vor int main
// Ausgabetext für das Fenster
GtkWidget *label = gtk_label_new("Hallo, Welt!");
gtk_container_add(GTK_CONTAINER(window), label);
// Zeigen des Fensters
gtk_widget_show_all(window);
gtk_main();
return 0;
}
Quellcode für GTK Grafikfenster 13:
#include <iostream>
#include <glib/gprintf.h>
#include <string.h>
#include <gtk/gtk.h>
static const gchar * interface =
"<interface>"
" <object class=\"GtkUIManager\" id=\"uimanager\">"
" <child>"
" <object class=\"GtkActionGroup\" id=\"aktionen\">"
" <child>"
" <object class=\"GtkAction\" id=\"datei\">"
" <property name=\"label\">_Datei</property>"
" </object>"
" </child>"
" <child>"
" <object class=\"GtkAction\" id=\"neu\">"
" <property name=\"label\">_Neue Datei</property>"
" <signal name=\"activate\" handler=\"kleine_callback\"/>"
" </object>"
" </child>"
" <child>"
" <object class=\"GtkAction\" id=\"exit\">"
" <property name=\"label\">_Beenden</property>"
" <property name=\"stock-id\">gtk-quit</property>"
" <signal name=\"activate\" handler=\"gtk_main_quit\"/>"
" </object>"
" </child>"
" <child>"
" <object class=\"GtkAction\" id=\"bearbeiten\">"
" <property name=\"label\">_Bearbeiten</property>"
" </object>"
" </child>"
" </object>"
" </child>"
" <ui>"
" <menubar name=\"menubar\">"
" <menu action=\"datei\" >"
" <menuitem action=\"neu\" />"
" <separator />"
" <menuitem action=\"exit\" />"
" </menu>"
" <menu action=\"bearbeiten\" />"
" </menubar>"
" </ui>"
" </object>"
" "
" <object class=\"GtkWindow\" id=\"hauptfenster\" >"
" <signal name=\"destroy\" handler=\"gtk_main_quit\"/>"
" <child>"
" <object class=\"GtkVBox\" id=\"vbox-layout\">"
" <property name=\"homogeneous\">FALSE</property>"
" <child>"
" <object class=\"GtkMenuBar\" id=\"menubar\" constructor=\"uimanager\"/>"
" </child>"
" </object>"
" </child>"
" </object>"
"</interface>";
int main(int argc, char *argv[]) {
// Initialisierung von GTK
gtk_init(&argc, &argv);
// Erstellung eines Fensters
GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
// Setzen des Titels und der Größe des Fensters
gtk_window_set_title(GTK_WINDOW(window), "GTK Grafikfenster 13 blau");
gtk_window_set_default_size(GTK_WINDOW(window), 300, 200);
// Hintergrundfarbe des Fensters festlegen
GtkCssProvider *provider = gtk_css_provider_new();
gtk_css_provider_load_from_data(provider,"* { background-color: #4682b4; }", -1, NULL);
GtkStyleContext *context = gtk_widget_get_style_context(window);
gtk_style_context_add_provider(context,
GTK_STYLE_PROVIDER(provider),
GTK_STYLE_PROVIDER_PRIORITY_USER);
// Dateimenü erzeugen
GtkBuilder *builder;
GError *errors = NULL;
builder = gtk_builder_new ();
gtk_builder_add_from_string (builder, interface,
strlen(interface), &errors);
gtk_builder_connect_signals (builder, NULL);
window = GTK_WIDGET(gtk_builder_get_object (builder, "hauptfenster"));
// Ausgabetext für das Fenster
// GtkWidget *label = gtk_label_new("Hallo, Welt!");
// gtk_container_add(GTK_CONTAINER(window), label);
// Zeigen des Fensters
gtk_widget_show_all(window);
gtk_main();
return 0;
}