GTK+ et Qt Creator

Cet article explique comment utiliser la bibliothèque Graphical Tool Kit (GTK+) avec l’environnement de développement Qt Creator. Cette installation a été réalisée avec les versions suivantes des logiciels :

  • Ubuntu 14.04 LTS (and 12.04 LTS)
  • Qt Creator 3.0.1
  • GTK 3

Installation des paquets

Installer Qt Creator si ce n’est déjà fait :

sudo apt-get install qtcreator

Installer le paquet GTK+:

sudo apt-get install libgtk-3-dev 

Configuration du projet

Créer un nouveau projet, sélectionner Qt Console Application:

Capture du 2014-12-04 11:35:53

Lorsque le projet est créé, éditer le fichier projet (.pro) et désactiver l’utilisation des bibliothèques Qt (QT-=gui et QT-=core). Ajouter les lignes suivantes pour utiliser la biliothèque GTK:

unix: CONFIG += link_pkgconfig
unix: PKGCONFIG += gtk+-3.0

Le fichier projet devrait ressembler à ceci:

# Disable Qt core and Qt Graphical user interface (don't use Qt)
QT	    -= core
QT	    -= gui

# Name of the target (executable file)
TARGET	    = gtk_test

# This is a console application
CONFIG	    += console
CONFIG	    -= app_bundle

# This is an application
TEMPLATE    = app

# Sources files
SOURCES	    += main.cpp

# GTK+ library
unix: CONFIG	+= link_pkgconfig
unix: PKGCONFIG += gtk+-3.0

Recopier l’exemple ci dessous dans le fichier main.cpp, compiler et exécuter.

#include 

int main (int   argc,    char *argv[])
{
  // Initialize GTK environment
  gtk_init (&argc, &argv);
  // Create a new window
  GtkWidget *window;
  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  // Set title to this new window
  gtk_window_set_title (GTK_WINDOW (window), "www.lucidarme.me");
  // Connect the signal to close the window
  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
  // Show the window
  gtk_widget_show (window);
  // Run main GTK loop
  gtk_main ();
  return 0;
}

Si tout s’est bien passé, une fenêtre vide devrait apparaître :
Screenshot from 2014-12-04 17:50:55

Téléchargement


Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *