Autore: Fabio Di Matteo
Ultima revisione: 04/12/2015 - 14:54
In questo articolo vedremo come interagire con i widget di Php-GTK2 nella “vita reale”. Nell'esempio che seguira' realizzeremo una gui di prova che permettera' di generare una seconda finestra contenente una label con il testo da noi inserito nella finestra principale.
main.php
#!/usr/bin/php <?php include_once('mainwindow.php'); include_once('secwindow.php'); $myMainWindow = new mainwindow(); //Start the main loop Gtk::main(); ?>
mainwindow.php
<?php class mainwindow { public $window, $message; public function __construct() { //Carico l'interffaccia grafica realizzata con glade per gtk2 $glade = new GladeXML('gui.glade'); //Callback per terminare il programma alla chiusura della finestra $this->window = $glade->get_widget('window1'); $this->window->connect_simple('destroy', array('Gtk', 'main_quit')); //Messaggio $this->message=$glade->get_widget('txtMessaggio'); //callbak bottone $myButton=$glade->get_widget('btnEsegui'); $myButton->connect_simple('clicked','mainwindow::sendMessage', $this->message ); } public function sendMessage($msg) { $mySecWindow = new secwindow(); $mySecWindow->lavagna->set_label($msg->get_text()); $mySecWindow->window->show_all(); } }//fine classe ?>
secwindow.php
<?php class secwindow { public $window; public $lavagna; public function __construct() { //Carico l'interffaccia grafica realizzata con glade per gtk2 $glade = new GladeXML('gui_sec.glade'); //Callback per terminare il programma alla chiusura della finestra $this->window = $glade->get_widget('windowSec'); $this->window->connect_simple('destroy', array('Gtk', 'main_quit')); //Espongo la label $this->lavagna= $glade->get_widget('lblLavagna'); //callbak bottone $myButton=$glade->get_widget('btnClose'); $myButton->connect_simple('clicked','secwindow::close',$this->window); } public function close($win) { $win->hide(); } }//