Outils pour utilisateurs

Outils du site


cppgtk:intro

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
cppgtk:intro [2022/12/25 16:19] 192.168.1.254cppgtk:intro [2023/01/01 16:30] (Version actuelle) 192.168.1.254
Ligne 1: Ligne 1:
 ====== C++ et GTKmm ====== ====== C++ et GTKmm ======
  
-Petit aide mémoire pour installer VSCode ou Builder et les configurer pour C++ et GTKmm sous Linux.+Petit aide mémoire pour installer [[cppgtk:InstallVSCode|VSCode]] (ou Builder), sans soublier [[cppgtk:InstallGlade|Glade]] et les configurer pour C++ et GTKmm sous Linux.
  
-Et aussi quelques proposition d'organisation du code pour fonctionner bien avec Glade.+Et aussi quelques proposition d'organisation du code autour de GTKmm et Glade 
  
-Commençons par VSCode téléchargement de la dernière version au format .debet  +  * Une structure Gtkmm [[cppgtk:basicStructure|main.cpp déléguant à un App Contrôleur]] de type ''RefPtr<Gtk::Application>'' 
-<code bash | insttallation+  * note sur la connexion de signaux, et cas particulier de Gtk::Switch
-sudo dpkg -i code_1.74.2-xxxx_amd64.deb +
-</code>+
  
-===== C et CPP pour utilisation GTKmm via un App Controller ===== 
  
-<code C | main.cpp> 
-#include "AppCtrl.h" 
- 
-int main(int argc, char *argv[]) 
-{ 
-    int retour; 
- 
-    //Création d'un appli Gtk::Application 
-    Glib::RefPtr<Gtk::Application> lAppli = Gtk::Application::create("org.gnome.Essai", Gio::APPLICATION_FLAGS_NONE); 
- 
-    //Connection de l'application et délégation du signal d'activation au controleur 
-    AppCtrl *leController; 
- leController = new AppCtrl(lAppli); 
-  
-    lAppli->signal_activate().connect(sigc::mem_fun(leController, &AppCtrl::on_Activate)); 
- 
-    //retour 
-    retour = lAppli->run(argc,argv); 
-    return retour; 
-} 
-</code> 
- 
-et du côté App Controleur 
- 
-<code cpp | AppCtrl.h> 
-#pragma once 
-#include <gtkmm.h> 
-#include <stdio.h> 
- 
-#include "EditorWW.h" 
- 
-/* 
-    Controleur de l'Application : reçois l'instance gtkApplication créée dans main 
-    Gère l'ajout / suppression de fenêtre à cette instance 
-    Tiens la liste des contenant de fenetres (WindowWrapper - WW) 
- 
-*/ 
- 
-class AppCtrl 
-{ 
-public: 
- 
-    Glib::RefPtr<Gtk::Application> lAppli; 
-    EditorWW *instanceEditeurWW; 
- 
-     
-    void on_Activate(); 
- 
-    AppCtrl (Glib::RefPtr<Gtk::Application> lAppliInit); 
-    ~AppCtrl(); 
-     
-}; 
-</code> 
-<code cpp | AppCtrl.cpp> 
-#include "AppCtrl.h" 
- 
- 
-void AppCtrl::on_Activate() 
-{ 
-    if(!instanceEditeurWW){ 
-        instanceEditeurWW = new EditorWW(); 
-        instanceEditeurWW->laFenetre->property_application() = lAppli; 
-        lAppli->add_window(*(instanceEditeurWW->laFenetre)); 
-    } 
- 
-    // 
-    instanceEditeurWW->laFenetre->present(); 
-    //instanceEditeurWW->Dessine(); 
- 
-} 
- 
-AppCtrl::AppCtrl(Glib::RefPtr<Gtk::Application>lAppliInit) 
-{ 
-    lAppli = lAppliInit; 
-} 
-</code> 
  
  
cppgtk/intro.1671981556.txt.gz · Dernière modification : 2022/12/25 16:19 de 192.168.1.254

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki