Académique Documents
Professionnel Documents
Culture Documents
#gtk3
Table des matières
À propos 1
Remarques 2
Versions 2
Examples 2
Installation ou configuration 3
Python 3
C ++ 3
kit de démarrage 6
Examples 8
Examples 12
Bonjour le monde 12
Le code 12
Introduction 14
Examples 14
css en action 14
échantillon de glarea 16
Examples 21
Se lever et courir 21
Chapitre 6: Installation de GTK + 3 sous Windows (en utilisant le référentiel GIT de GNOME 22
Examples 22
Examples 26
Vue d'ensemble 26
Workflow 26
Exemple 26
Crédits 32
À propos
You can share this PDF with anyone you feel could benefit from it, downloaded the latest version
from: gtk3
It is an unofficial and free gtk3 ebook created for educational purposes. All the content is extracted
from Stack Overflow Documentation, which is written by many hardworking individuals at Stack
Overflow. It is neither affiliated with Stack Overflow nor official gtk3.
The content is released under Creative Commons BY-SA, and the list of contributors to each
chapter are provided in the credits section at the end of this book. Images may be copyright of
their respective owners unless otherwise specified. All trademarks and registered trademarks are
the property of their respective company owners.
Use the content presented in this book at your own risk; it is not guaranteed to be correct nor
accurate, please send your feedback and corrections to info@zzzprojects.com
https://riptutorial.com/fr/home 1
Chapitre 1: Démarrer avec gtk3
Remarques
GTK + 3, également connu sous le nom de Gtk3, est un toolkit d'interface graphique multi-
plateforme, il est écrit en C mais contient des liaisons pour de nombreux langages, dont C ++,
Python, Vala et Ruby. (Pour la liste complète, voir le site Web de Gtk ).
Gtk + fait partie du projet GNU et relève des licences GNU LGPL, ce qui signifie qu'il est autorisé
à être utilisé par tous les développeurs, y compris ceux qui développent des logiciels propriétaires,
sans droits de licence ni redevances.
Versions
3.20 2016-03-01
3.18 2015-09-01
3.16 2015-03-01
3.14 2014-09-01
3.12 2014-03-01
3.10 2013-09-01
3.8 2013-03-01
3.6 2012-09-01
3.4 2012-04-01
3.2 2011-10-01
3.0 2010-02-01
Sources:
• https://wiki.gnome.org/Projects/GTK%2B/OldRoadmap
•
Examples
https://riptutorial.com/fr/home 2
Installation ou configuration
Python
les fenêtres
La méthode la plus simple pour installer GTK3 pour Python consiste à utiliser PyGObject pour
Windows . Il offre un installateur qui installe la plupart des choses dont vous avez besoin pour
développer des applications GTK.
Le nombre d'options offertes par l'installateur PyGObject peut être décourageant, mais pour la
plupart des projets GTK, la seule option que vous devez sélectionner est GTK+ 3.xx
C ++
La liaison C ++ pour Gtk + est appelée gtkmm .
les fenêtres
Sur Microsoft Windows, gtkmm peut être installé via l'environnement MSYS2 . Une fois
l'environnement MSYS2 configuré en installant le programme d'installation et en mettant à jour la
liste des packages, installez gtkmm avec
Installez pkg-config pour obtenir facilement des drapeaux de compilateur et d'éditeur de liens et
l'intégration de la génération d'autotools GNU
pacman -S pkg-config
Maintenant, l'application gtkmm peut être compilée, liée et exécutée dans l'environnement
MSYS2.
libatk-1.0-0.dll
libatkmm-1.6-1.dll
https://riptutorial.com/fr/home 3
libbz2-1.dll
libcairo-2.dll
libcairo-gobject-2.dll
libcairomm-1.0-1.dll
libepoxy-0.dll
libexpat-1.dll
libffi-6.dll
libfontconfig-1.dll
libfreetype-6.dll
libgcc_s_seh-1.dll
libgdk_pixbuf-2.0-0.dll
libgdk-3-0.dll
libgdkmm-3.0-1.dll
libgio-2.0-0.dll
libgiomm-2.4-1.dll
libglib-2.0-0.dll
libglibmm-2.4-1.dll
libgmodule-2.0-0.dll
libgobject-2.0-0.dll
libgtk-3-0.dll
libgtkmm-3.0-1.dll
libharfbuzz-0.dll
libiconv-2.dll
libintl-8.dll
libpango-1.0-0.dll
libpangocairo-1.0-0.dll
libpangoft2-1.0-0.dll
libpangomm-1.4-1.dll
libpangowin32-1.0-0.dll
libpixman-1-0.dll
libpng16-16.dll
libsigc-2.0-0.dll
libstdc++-6.dll
libwinpthread-1.dll
zlib1.dll
Après cette étape, le programme doit être exécuté. Mais il ne trouvera pas d'icônes standard pour
Gtk +, c'est-à-dire le thème de l'icône Adwaita , de sorte que les icônes ne seront pas chargées.
Les icônes et quelques autres fichiers doivent être copiés dans le répertoire de l'application pour
que l'application puisse les charger.
mingw64
|
+-- lib
|
+-- gdk-pixbuf-2.0
share
|
+-- icons
|
+-- Adwaita
|
+-- hicolor (fallback icon theme for Gtk+)
https://riptutorial.com/fr/home 4
[C ++] "Hello World" en gtkmm
#include <gtkmm/application.h>
#include <gtkmm/applicationwindow.h>
#include <gtkmm/button.h>
#include <gtk/gtk.h>
https://riptutorial.com/fr/home 5
// display the window
gtk_widget_show_all(GTK_WIDGET(window));
}
kit de démarrage
#include <gtk/gtk.h>
static void destroy(GtkWidget *widget, gpointer data)
{
gtk_main_quit();
}
int main(int argc, char *argv[])
{
gtk_init(&argc, &argv);
GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), "Window");
g_signal_connect(window, "destroy", G_CALLBACK(destroy), NULL);
GtkWidget *k;
k= gtk_fixed_new();
gtk_container_add(GTK_CONTAINER(window), k);
GtkWidget* la,*r;
la = gtk_button_new_with_label (",mkl");
gtk_fixed_put (GTK_FIXED (k), la,50,237);
gtk_widget_set_size_request(la, 98, 90);
// gtk_container_set_border_width(GTK_CONTAINER (la) , 5);
r = gtk_button_new_with_label (",kii");
gtk_fixed_put (GTK_FIXED (k), r,150,237);
gtk_widget_set_size_request(r, 98, 90);
gtk_widget_set_size_request(GTK_WIDGET(window),300,349);
gtk_widget_show_all(GTK_WIDGET(window));
gtk_main();
return 0;
}
compiler:
https://riptutorial.com/fr/home 6
c++ starterkit.c `pkg-config --libs --cflags gtk+-3.0` -o p
et
./p
https://riptutorial.com/fr/home 7
Chapitre 2: GTK + 3 avec Python
Examples
Une simple fenêtre GTK
Présenter simplement une fenêtre est facile avec GTK et Python. L'exemple ci-dessous est basé
sur le tutoriel Python GTK3 , que vous devriez lire si vous êtes débutant en programmation
graphique ou en GTK.
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
# Tell Gtk what to do when the window is closed (in this case quit the main loop)
win.connect("delete-event", Gtk.main_quit)
# Start the Gtk main loop, which returns when Gtk.main_quit is called
Gtk.main()
Le moyen le plus simple d’obtenir un gestionnaire d’événement appelé sur une touche consiste à
connecter le gestionnaire au signal d’ key-press-event . Dans cet exemple, nous enregistrons
l’événement pour toute la fenêtre, mais vous pouvez également vous enregistrer pour des widgets
individuels.
self.connect("key-press-event",self.on_key_press_event)
Dans le gestionnaire d'événements, le widget et l'événement key-press sont transmis en tant que
https://riptutorial.com/fr/home 8
paramètres. Les modificateurs de event.state tels que la touche Ctrl, sont disponibles dans
event.state et la touche pressée est event.keyval .
Les valeurs des touches de modification se trouvent dans Gdk.ModiferType et incluent CONTROL_MASK ,
SHIFT_MASK et plusieurs autres.
Les valeurs clés se trouvent dans Gdk avec les préfixes de KEY_ , par exemple, la clé h est Gdk.KEY_h
). Elles peuvent être converties en chaîne en utilisant Gdk.keyval_name() .
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
from gi.repository import Gdk
class MyWindow(Gtk.Window):
key = Gdk.KEY_h
def __init__(self):
# init the base class (Gtk.Window)
super().__init__()
# Tell Gtk what to do when the window is closed (in this case quit the main loop)
self.connect("delete-event", Gtk.main_quit)
# a helpful label
instruct = Gtk.Label(label="Press Ctrl+%s" % keyname)
box.add(instruct)
self.add(box)
https://riptutorial.com/fr/home 9
# see if we recognise a keypress
if ctrl and event.keyval == Gdk.KEY_h:
self.shortcut_hits += 1
self.update_label_text()
def update_label_text(self):
# Update the label based on the state of the hit variable
self.label.set_text("Shortcut pressed %d times" % self.shortcut_hits)
if __name__ == "__main__":
win = MyWindow()
win.show_all()
Un comportement plus avancé pour les raccourcis applicatifs peut être obtenu avec un groupe
d'accélérateurs ( Gtk.AccelGroup ), mais souvent, un gestionnaire de touches rapides suffit pour
capturer les événements de clavier souhaités pour un widget spécifique.
Vous trouverez ci-dessous un exemple de pipeline Gstreamer intégré dans une simple fenêtre gtk.
Lorsqu'elle est exécutée, une petite fenêtre devrait apparaître comme ceci:
import gi
gi.require_version('Gtk', '3.0')
gi.require_version('Gst', '1.0')
class GstWidget(Gtk.Box):
def __init__(self, pipeline):
super().__init__()
# Only setup the widget after the window is shown.
self.connect('realize', self._on_realize)
https://riptutorial.com/fr/home 10
self._bin = Gst.parse_bin_from_description(pipeline, True)
window = Gtk.ApplicationWindow()
window.add(widget)
window.show_all()
def on_destroy(win):
Gtk.main_quit()
window.connect('destroy', on_destroy)
Gtk.main()
https://riptutorial.com/fr/home 11
Chapitre 3: GTK + 3 avec Vala
Examples
Bonjour le monde
Pourrait être encore plus basique, mais cela montre certaines des fonctionnalités de la langue
Vala.
Le code
using Gtk;
window.add (button);
window.show_all ();
Gtk.main ();
return 0;
}
Toutes les classes GTK + sont à l'intérieur de l'espace de noms Gtk . Vous devez initialiser chaque
programme GTK + avec Gtk.init () .
Cela a besoin du valac compilateur, gcc , les glib et gtk3 packages de développement installés sur
votre système.
https://riptutorial.com/fr/home 12
Lire GTK + 3 avec Vala en ligne: https://riptutorial.com/fr/gtk3/topic/4673/gtk-plus-3-avec-vala
https://riptutorial.com/fr/home 13
Chapitre 4: gtk + 3 linux c
Introduction
des échantillons de code et d'autres choses
Examples
css en action
#include <gtk/gtk.h>//jjk.c
static void destroy(GtkWidget *widget, gpointer data)
{
gtk_main_quit();
}
int main(int argc, char *argv[])
{
gtk_init(&argc, &argv);
GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), "Window");
g_signal_connect(window, "destroy", G_CALLBACK(destroy), NULL);
GtkWidget *k;
k= gtk_fixed_new();
gtk_container_add(GTK_CONTAINER(window), k);
GtkWidget* la,*r;
la = gtk_button_new_with_label (",mkl");
gtk_fixed_put (GTK_FIXED (k), la,50,237);
gtk_widget_set_size_request(la, 98, 90);
// gtk_container_set_border_width(GTK_CONTAINER (la) , 5);
union {
char w[4]={0xf,0xe,0xd,0xa};;
uint t;
} tc;
r = gtk_button_new_with_label (",kii");
gtk_fixed_put (GTK_FIXED (k), r,150,237);
gtk_widget_set_size_request(r, 98, 90);
gtk_widget_set_size_request(GTK_WIDGET(window),300,349);
GtkStyleContext *context;
context = gtk_widget_get_style_context(la);
gtk_style_context_add_provider (context,
GTK_STYLE_PROVIDER(provider),
GTK_STYLE_PROVIDER_PRIORITY_USER);
https://riptutorial.com/fr/home 14
// gtk_style_context_save (context);
// gtk_style_context_add_provider_for_screen(gdk_screen_get_default(),
//
GTK_STYLE_PROVIDER(provider),TK_STYLE_PROVIDER_PRIORITY_USER);
gtk_widget_show_all(GTK_WIDGET(window));
#define h 7
printf("%xh\n",tc.t);
gtk_main();
return 0;
}
gtk-widgets.css
GtkButton:hover {
color: yellowgreen;
background-color: green;
opacity: 0.95;
text-decoration: underline;
background-image: -gtk-gradient (linear,
left top,
left bottom,
color-stop(0.0,rgba(34,97,70,1)),
color-stop(0.30,rgba(56,145,118,0.9)),
color-stop(0.81,rgba(34,131,116,0.9)),
color-stop(1.00,rgba(104,191,134,1)));
GtkButton:active{
color: yellowgreen;
background-color: green;
opacity: 0.97;
text-decoration: underline;
background-image: -gtk-gradient (linear,
left top,
left bottom,
color-stop(0.000,rgba(104,191,134,1)),
color-stop(0.11,rgba(34,131,116,1)),
color-stop(0.32,rgba(34,97,70,1)),
color-stop(0.70,rgba(56,145,118,1)),
color-stop(0.91,rgba(34,131,116,1)),
color-stop(1.00,rgba(104,191,134,1)));
GtkButton {
color: yellowgreen;
background-color: green;
opacity: 0.797;
text-decoration: underline;
background-image: -gtk-gradient (linear,
https://riptutorial.com/fr/home 15
left top,
left bottom,
color-stop(0.0,rgba(34,97,70,1)),
color-stop(0.50,rgba(56,145,118,1)),
color-stop(0.51,rgba(34,131,116,1)),
color-stop(1.00,rgba(104,191,134,1)));
échantillon de glarea
#version 330
les triangles sont déployés de manière à ce que la normale pointe d'un cube.
//#include <stdio.h>
//#include <string.h>
//#include <iostream>
//#include <glib.h>
#include <gdk/gdkx.h>
#include <epoxy/glx.h>
#include <epoxy/gl.h>
#include <gtk/gtk.h>
#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/type_ptr.hpp>
https://riptutorial.com/fr/home 16
"} \n" ;
const GLchar *frag_src ="\n" \
"#version 330 \n" \
" vec4 b; \n" \
" in vec4 knn; \n" \
"void main (void) \n" \
"{ \n" \
" if(gl_FrontFacing){ \n" \
gtk_gl_area_make_current(GTK_GL_AREA(area));
if (gtk_gl_area_get_error (GTK_GL_AREA(area)) != NULL)
{
printf("failed to initialiize buffers\n");
return false;
}
GLfloat verts[] =
{
+0.7,+0.7,+0.7,
-0.7,0.7, 0.7,
-0.7,+0.7, -0.7,
0.7,+0.7, -0.7,
+0.7,+0.7,+0.7,
-0.7,+0.7, -0.7,
-0.7,-0.7, +0.7,
+0.7,+0.7,+0.7,
-0.7,0.7, 0.7,
+0.7,+0.7,+0.7,
-0.7,-0.7, +0.7,
0.7,-0.7, 0.7,
+0.7,-0.7,-0.7,
https://riptutorial.com/fr/home 17
-0.7,-0.7,-0.7,
0.7,+0.7, -0.7,
-0.7,+0.7, -0.7,
0.7,+0.7, -0.7,
-0.7,-0.7, -0.7,
-0.7,-0.7, +0.7,
-0.7,-0.7, -0.7,
0.7,-0.7, 0.7,
+0.7,-0.7, -0.7,
0.7,-0.7, 0.7,
-0.7,-0.7, -0.7,
0.7,+0.7, -0.7,
+0.7,+0.7,+0.7,
+0.7,-0.7, -0.7,
0.7,-0.7, -0.7,
+0.7,+0.7,+0.7,
0.7,-0.7, 0.7,
-0.7,-0.7, -0.7,
-0.7,0.7, 0.7,
-0.7,+0.7, -0.7,
-0.7,-0.7, +0.7,
-0.7,0.7, 0.7,
-0.7,-0.7, -0.7
};
b=glm::lookAt(glm::vec3(1.75,-2.38,1.4444), glm::vec3( 0., 0., 0.),glm::vec3( 0.,0.2,-00.));
yt=glm::perspective(45., 1., 1.2, 300.);
b=yt*b*glm::mat4(1.);
https://riptutorial.com/fr/home 18
glCompileShader(frag_shader);
glCompileShader(vert_shader);
gl_program = glCreateProgram();
glAttachShader(gl_program, frag_shader);
glAttachShader(gl_program, vert_shader);
glLinkProgram(gl_program);
// glUniformMatrix4fv(1, 1, 0, glm::value_ptr(b));
glGenVertexArrays(1, &gl_vao);
glBindVertexArray(gl_vao);
glGenBuffers(1, &gl_buffer);
glBindBuffer(GL_ARRAY_BUFFER, gl_buffer);
glBufferData(GL_ARRAY_BUFFER, sizeof(verts), verts, GL_STATIC_DRAW);
glEnableVertexAttribArray(0);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, (void*)0);
glBindVertexArray(0);
return TRUE;
}
glEnable(GL_DEPTH_TEST);
glEnable(GL_BLEND);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glClearColor(0.0, 0.0, 0.0, 1.0);
glUseProgram(gl_program);
glUniformMatrix4fv(10, 1, 0, &b[0][0]);
glBindVertexArray(gl_vao);
glDrawArrays(GL_TRIANGLES,0,36 );
glBindVertexArray (0);
glUseProgram (0);
glFlush();
return TRUE;
}
https://riptutorial.com/fr/home 19
int main(int argc, char** argv)
{
gtk_init(&argc, &argv);
gtk_container_add(GTK_CONTAINER(window), gl_area);
gtk_widget_show_all(window);
gtk_main();
return 0;
}
https://riptutorial.com/fr/home 20
Chapitre 5: Gtk3 avec Ruby
Examples
Se lever et courir
# Like any other ruby code, require gtk3 after installing from "gem install gtk3"
require 'gtk3'
# Like in Rails, you import working functions from a higher class, in this case the GTK Window
class RubyApp < Gtk::Window
# Calling the original method from GTK Window and redefining the defaults
def initialize
super
# Invoking built-in GTK connection and calling destroy to replicate the quit action
signal_connect "destroy" do
Gtk.main_quit
end
https://riptutorial.com/fr/home 21
Chapitre 6: Installation de GTK + 3 sous
Windows (en utilisant le référentiel GIT de
GNOME) (C-C supposant que GCC est
installé)
Examples
Téléchargement de GTK + 3 (également adapté aux autres versions) et
Configuration
Téléchargement du bundle:
Le moyen le plus simple de télécharger le kit GTK requis est de le rechercher et de le télécharger
à l’aide de ce lien: https://git.gnome.org/browse/gtk+ (dépôt GNOME GIT)
GNOME GIT Repository fournit les bundles pour différentes versions et vous pouvez facilement
trouver la version souhaitée en parcourant la liste. Ceux-ci sont téléchargés par d'autres
utilisateurs ou auteurs et vous trouverez souvent de nouveaux forfaits à venir.
Alternatives:
https://riptutorial.com/fr/home 22
L'autre option ou la méthode alternative pour acquérir le bundle consiste à utiliser MSYS2. Cette
méthode est un peu compliquée et n'est pas bien expliquée ou documentée. Le meilleur moyen
est de télécharger directement le bundle depuis un site Web d'hébergement de fichiers externe.
Méthode MSYS2
1. Créer un dossier nommé gtk dans le C: Drive . Vous pouvez choisir d'autres noms pour le
dossier mais ce nom nous aide à identifier le contenu assez facilement et à mémoriser le
nom devient plus facile. Appelons l'emplacement du dossier Gtk sous la forme %GD% pour plus
de facilité et dans ce cas, il s'agit de C:\gtk (peut être différent dans votre cas).
https://riptutorial.com/fr/home 23
• Ajoutez un nouveau Gtk bin file Path (%GD%\bin) à la variable Path (Sous
Variables système ou ajoutez une variable nommée Path à la section Variables
utilisateur et ajoutez-y la valeur) disponible dans la boîte de dialogue qui s'ouvre.
Vous devez également ajouter une nouvelle variable nommée PKG_CONFIG_PATH et
lui donner la valeur suivante C:\gtk\lib\pkgconfig (car mon dossier gtk se trouve
dans le lecteur C C:\gtk\lib\pkgconfig .
https://riptutorial.com/fr/home 24
3. Test de la configuration (Vous devez avoir GCC déjà installé sur votre système-MinGW
préférable ( http://www.mingw.org/) : Exécutez les commandes suivantes sur la cmd:
pango-querymodules: %GTKDIR%\etc\pango\pango.modules
gdk-pixbuf-query-loaders: %GTKDIR%\lib\gdk-pixbuf-2.0\2.10.0\loaders.cache
gtk-query-immodules-3.0: %GTKDIR%\lib\gtk-3.0\3.0.0\immodules.cache
• Dans la console, vérifiez que "pkg-config" pkg-config --cflags --libs gtk+-3.0 quelque
chose de raisonnable en tapant: pkg-config --cflags --libs gtk+-3.0 Il devrait imprimer
quelque chose de similaire à l'image suivante.
C'est tout. Vous avez téléchargé et installé GTK sur votre système Windows.
Lire Installation de GTK + 3 sous Windows (en utilisant le référentiel GIT de GNOME) (C-C
supposant que GCC est installé) en ligne: https://riptutorial.com/fr/gtk3/topic/5602/installation-de-
gtk-plus-3-sous-windows--en-utilisant-le-referentiel-git-de-gnome---c-c-supposant-que-gcc-est-
installe-
https://riptutorial.com/fr/home 25
Chapitre 7: Utilisation de Glade avec l'API
Builder
Examples
[C ++] en utilisant Gtk :: Builder en gtkmm
Vue d'ensemble
Gtk + prend en charge un flux de travail où la tâche de conception de l'interface utilisateur et la
tâche de programmation sont découplées. Bien que les éléments de l'interface utilisateur tels que
les boutons, les menus, la mise en page, etc. puissent être directement ajoutés à partir du code,
cette approche non seulement encombre le code, mais rend également difficile le changement de
l'interface utilisateur. En outre, certains éléments d'interface ne sont utilisés que pour contenir la
structure physique et n'ont pas besoin de participer à la logique, leur ajout à partir du code ne fait
que le rallonger. Au lieu de cela, Glade peut être utilisé pour générer une description de l'interface
utilisateur, car les API XML et Gtk + Builder peuvent être utilisées pour charger l'interface
utilisateur et y fonctionner.
Workflow
1. Concevez des éléments d'interface utilisateur dans Glade à l' aide du glisser-déposer. Glade
génère un fichier XML contenant des descriptions d'interface utilisateur. Cela peut
également être fait manuellement en écrivant une syntaxe XML correcte et en l'enregistrant
avec une extension .glade .
2. Chargez l'interface depuis le fichier directement avec
auto ui = Gtk::Builder::create_from_file("ui.glade");
Exemple
https://riptutorial.com/fr/home 26
https://riptutorial.com/fr/home 27
simple.glade
https://riptutorial.com/fr/home 28
<child>
<object class="GtkLabel" id="display_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="wrap">True</property>
<attributes>
<attribute name="weight" value="bold"/>
<attribute name="scale" value="5"/>
<attribute name="foreground" value="#a4a400000000"/>
</attributes>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="display_button">
<property name="label" translatable="yes">Display Message</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</interface>
simple.cpp
#include <gtkmm/application.h>
#include <gtkmm/applicationwindow.h>
#include <gtkmm/button.h>
#include <gtkmm/label.h>
#include <gtkmm/box.h>
#include <gtkmm/builder.h>
https://riptutorial.com/fr/home 29
[this]() {
display_label->set_text("Hello World");
});
add(*cont);
}
}
set_title("Simple Gtk::Builder demo");
set_default_size(400, 400);
show_all();
}
};
Sortie
https://riptutorial.com/fr/home 30
d'abord, une description de ressource doit être créée en tant que fichier XML.
resources.xml
<gresources>
<gresource prefix="/unique/prefix/">
<file>icon.png</file>
<!-- text files such as XML can be compressed to save memory -->
<file compressed="true">ui.glade</file>
</gresource>
</gresources>
Ensuite , soit créer un séparé .gresource fichier ou un .c contenant des ressources fichier en tant
que données de chaîne à lier comme une partie de l'application.
auto ui = Gtk::Builder::create_from_resource("/unique/prefix/ui.glade");
https://riptutorial.com/fr/home 31
Crédits
S.
Chapitres Contributeurs
No
Installation de GTK +
3 sous Windows (en
utilisant le référentiel
6 Mathews Mathai
GIT de GNOME) (C-
C supposant que
GCC est installé)
Utilisation de Glade
7 Samik
avec l'API Builder
https://riptutorial.com/fr/home 32