Gtk console php

Contenu du snippet

Voici un bout de code, ça produit une fenêtre, (comme si on était dans une apps classique), et ça permet d'effectuer pas mal d'opérations, comme si on était dans une console...

ça permet simplement de tester des bouts de codes facilement...

la librairie qui me permet d'afficher une fenêtre est phpgtk (à ma conaissance, il n'y en a qu'une),

ce programme se lance donc en mode console (et oui, mozilla et ie bosseront de la même façon cette fois !), en faisant ./monprogramme.php sous linux, et hop, ça se lance tout seul... sous windows, je crois qu'il faut supprimer la première ligne et faire simplement monprogramme.php

bon, pour la doc :
http://gtk.php.net/

et toutes les références sur gtk

Si vous voulez réutiliser une variable d'une ligne sur l'autre, alors il vous faut impérativement stoquer cette variable dans $variables, car ce qui exécute est une fonction, donc, vos variables seront autrement perdues...

Source / Exemple :


#!/usr/bin/php4
<?php
ob_start();
$bgcolor='#77AAFF';
$acolor='#0077FF';
function deleteevent(){
	return false;
}
function destroywindow(){
	Gtk::main_quit();
}
function exit_window($bouton, $window){
	$window->destroy();
}
function executer($bouton){
	global $text, $variables;
	eval($text->get_text());
	speak();
}
function actualiser($bouton){
	speak();
}
function speak(){
	global $speak;
	$a=ob_get_clean();
	ob_start();
	$speak->insert_text($a, $speak->get_length());
}
set_time_limit(0);

if (!extension_loaded('php_gtk')) {
	if (!dl('php_gtk.so')) {
		exit();
	}
}
$variables=false;
$window = &new GtkWindow(GTK_WINDOW_TOPLEVEL);
$window->connect('destroy', 'destroywindow');
$window->connect('delete-event', 'deleteevent');
$window->set_border_width(5);
$window->set_title("PHP-MAX-MSN");
$window->set_default_size(500, 350);
$window->realize();

$style = gtk::widget_get_default_style();
$basicBackGroundColor = &new GdkColor($bgcolor);
$basicBackGroundColor2 = &new GdkColor($acolor);
$style->bg[GTK_STATE_NORMAL] = $basicBackGroundColor;
$style->bg[GTK_STATE_PRELIGHT] = $basicBackGroundColor2;

$window->set_style($style);

$VerticalBox=&new GtkVBox();
$VerticalBox->set_spacing(5);
$VerticalBox->set_border_width(0);

$VerticalBox2=&new GtkVBox();
$VerticalBox2->set_spacing(5);
$VerticalBox2->set_border_width(0);

$HorizontalBox=&new GtkHBox();
$HorizontalBox->set_spacing(5);
$HorizontalBox->set_border_width(0);

$text = &new GtkEntry();
$text->set_style($style);

$speak = &new GtkText();
$speak->set_style($style);

$bouton1 = &new GtkButton('actualiser');
$bouton1->connect('pressed', 'actualiser');
$bouton1->set_style($style);

$bouton2 = &new GtkButton('executer');
$bouton2->connect('pressed', 'executer');
$bouton2->set_style($style);

$VerticalBox2->add($bouton2);
$VerticalBox2->add($bouton1);

$HorizontalBox->add($text);
$HorizontalBox->add($VerticalBox2);

$VerticalBox->add($speak);
$VerticalBox->add($HorizontalBox);

$window->add($VerticalBox);
$window->show_all();

Gtk::main();
ob_end_clean();
?>

Conclusion :


c'est marrant, c'est à la fois une application, du graphique, et de la POO (gtk est OO, même si il est codé en C)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.