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;
}

Von Torsten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert