Last active
January 2, 2016 23:59
-
-
Save zedtux/8380077 to your computer and use it in GitHub Desktop.
Créer simplement une interface GTK en C++ - Mise a jour du hello.cpp 2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include “hello.h” | |
//~ Ici j’ai ajouté le bouton, le label et la boite de text en initialization à 0 | |
Hello::Hello(BaseObjectType* cobject, const Glib::RefPtr& refGlade) | |
: Gtk::Window(cobject), | |
m_refXmlGlade(refGlade), | |
m_buttonQuit(0), | |
m_buttonApply(0), | |
m_entryName(0), | |
m_labelName(0) | |
{ | |
m_refXmlGlade->get_widget("button1", m_buttonQuit); | |
if ( m_buttonQuit ) | |
{ | |
m_buttonQuit->signal_clicked().connect( sigc::mem_fun(*this, &Hello::on_button_quit) ); | |
} else { | |
std::cerr << "Unable to hook the Quit button !" << std::endl; | |
} | |
//~ Ici notre bouton Appliquer | |
m_refXmlGlade->get_widget("button2", m_buttonApply); | |
if ( m_buttonApply ) | |
{ | |
//~ Que nous lions à la méthode on_button_apply() | |
m_buttonApply->signal_clicked().connect( sigc::mem_fun(*this, &Hello::on_button_apply) ); | |
} else { | |
std::cerr << "Unable to hook the Apply button !" << std::endl; | |
} | |
//~ Ici on récupère le lable et la boite de text. | |
m_refXmlGlade->get_widget("entry1", m_entryName); | |
m_refXmlGlade->get_widget("label1", m_labelName); | |
} | |
Hello::~Hello() | |
{ | |
} | |
void Hello::on_button_quit() | |
{ | |
hide(); | |
} | |
//~ Notre nouvelle méthode, appelé au clique sur appliquer | |
void Hello::on_button_apply() | |
{ | |
//~ Qui appelle la méthode sayHello() en passant ce qui à été entré dans la boite de text | |
//~ Il suffit d’utiliser get_text() sur la boite de dialog pour récupérer son text… facile hun ! :-D | |
this->sayHello( m_entryName->get_text() ); | |
} | |
//~ La méthode qui va modifier le Label | |
void Hello::sayHello( Glib::ustring name ) | |
{ | |
//~ Avec la valeur passé en argument. | |
//~ Il est évident qu’il faudrait faire des petites vérifications avant de modifier le label :-) | |
m_labelName->set_text("Hello " + name + "!"); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment