Your browser does not seem to support CSS. If images appear below, please disregard them.
It appears that you're running an Ad-Blocker. This site is monetized by Advertising and by User Donations; we ask that if you find this site helpful that you whitelist us in your Ad-Blocker, or make a Donation to help aid in operating costs.
Previous Thread
Next Thread
Print Thread
Rate This Thread
#14997 - 10/03/03 10:27 AM php-GTK+ to develope GUI's for windows  
Joined: Oct 2003
Posts: 7
Learner2 Offline
Junior Member
Learner2  Offline
Junior Member

Joined: Oct 2003
Posts: 7
Anyone play with this at all?

http://gtk.php.net

Prety cool stuff. Of course it works for Linux as well but I like using it in windows. What you can do with little effort is so cool. I am just getting started so I am looking for anyone who might have some tips.

Sponsored Links
#14998 - 10/03/03 11:44 AM Re: php-GTK+ to develope GUI's for windows  
Joined: Mar 2002
Posts: 1,041
Infinite Offline
UGN Elite Poster
Infinite  Offline
UGN Elite Poster

Joined: Mar 2002
Posts: 1,041
Canada eh
I do Gtk-perl. Much fun, and not that hard. Unfortunately, there is no windows port yet, but I don't really want to program windows anyways :p

Infinite

#14999 - 10/04/03 10:47 PM Re: php-GTK+ to develope GUI's for windows  
Joined: Oct 2003
Posts: 7
Learner2 Offline
Junior Member
Learner2  Offline
Junior Member

Joined: Oct 2003
Posts: 7
Okay so I am starting on this. This is my first thing. I modified the sample hello.php code that came with the zip file.

php-gtk-0.5.2a-win32.zip

Code:
 
<?php
/* $Id: hello.php,v 1.6 2002/11/25 18:22:05 fmk Exp $ */


if (!class_exists('gtk')) {
	if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN')
		dl('php_gtk.dll');
	else
		dl('php_gtk.so');
}


function delete_event()
{
	return false;
}



function destroy()
{
	Gtk::main_quit();
}



function buttons()
{
	global	$window;
	print 'Closing window\n';
	$window->destroy();
}



$window = &new GtkWindow();
$window->connect('destroy', 'destroy');
$window->connect('delete-event', 'delete_event');
$window->set_border_width(10);




$button = &new GtkButton('Close');
$button->connect('clicked', 'buttons');
$window->add($button);




$tt = &new GtkTooltips();
$tt->set_delay(200);
$tt->set_tip($button, 'Closes out this Window', '');
$tt->enable();




/*realize the underlying GdkWindow, flag the GtkWindow's visibility and map
  it onto the screen, all in one simple line*/

$window->show_all();




/*without the main loop, there is no PHP-GTK script*/



Gtk::main();


?>

 
I can get it up and running and it dose what I want it to but I have trouble adding widgets to it. The whole adding a child widget to the parrent is screwing me up or maybe my syntax is fucked. Can anyone breake this down for me in forest gump terms? I know a widget is basicaly equal to an object in other languages. I am talking the child parent relationship

Why some widgets can only have one child and others unlimited.

#15000 - 10/05/03 09:57 AM Re: php-GTK+ to develope GUI's for windows  
Joined: Dec 2002
Posts: 3,255
§intå× Offline
§intå×  Offline



Joined: Dec 2002
Posts: 3,255
Likes: 1
Maryland
Okay I am catching on. In order to set a widget inside another you have to specify using something like

$window->add($vbox);

This puts a verticle box inside the window. A sort of likeness to tables in HTML Here is what I have so far.

Quote:
For all those geeks who might still be wondering what is happening. Just do this... Unzip the zip package into the c:\ directory - that will do. And then start rolling. Check whether it is working by going into c:\php4 and typing this php c:\test\gtk.php


My New site OpenEyes
#15001 - 10/06/03 12:27 AM Re: php-GTK+ to develope GUI's for windows  
Joined: Oct 2003
Posts: 7
Learner2 Offline
Junior Member
Learner2  Offline
Junior Member

Joined: Oct 2003
Posts: 7
Okay moving along. My little learning script can connect to a database. I want to place an image in this puppy. A red sphear if it can not connect and a blue one if it can. To do this I need to use the Gdk widget GtkPixmap

Now here is what I have found so far on this

http://gtk.php.net/manual/en/gtk.gtkpixmap.php

Quote:

pixmap_create_from_xpm can not load c:\path\to\image\my_image.png
So duh, It is looking for an image with an xmp extension right? How the hell do I create on. I have photoshop, paint(of course), Flash, and paintshop pro. None of which will creat a xmp extension. Or I can create it but it is not truely creating this extension file type. Any help?

My code so far is shown below. It will now connect to a MySQL database and extrat data to dissplay in the GUI. I will get to making that more dynamic later.
Code:
  
<?php
/* $Id: hello.php,v 1.6 2002/11/25 18:22:05 fmk Exp $ */
//
//
if (!class_exists('gtk')) {
if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN')
dl('php_gtk.dll');
else
dl('php_gtk.so');
}
//
function delete_event(){
return false;
}
//
function destroy(){
Gtk::main_quit();
}
//
function buttons(){
global $window;
gdk::beep();
$window->destroy();
}
//
$window = &new GtkWindow();
$window->connect('destroy', 'destroy');
$window->connect('delete-event', 'delete_event');
$window->set_border_width(10);
$window->show();
//
$Hbox_start = &new GtkHBox(false, 5); 
$window->add($Hbox_start);
//
$vbox = &new GtkVBox(false, 5);
$Hbox_start->add($vbox);
//
//
//
$frame = &new GtkFrame("Close section");
$frame->set_label("Click to exit"); 
$frame->set_label_align(0.0, 0.5); 
$frame->set_shadow_type(GTK_SHADOW_ETCHED_IN);
$frame->show();
$vbox->pack_start($frame, true, true, 5);
//
//
$hbox1 = &new GtkHBox(false, 5);
//
//
$label = &new GtkLabel();
	$label->set_text("To close this window all you have \n
to do is click on the button below. \n
But be warned!! I can not be held \n
responsible for what else it might do.");
	$label->set_justify(GTK_JUSTIFY_LEFT);
$frame->add($label);
	$label->show();
//
//
$hbox2 = &new GtkHBox(false, 5);
$vbox->add($hbox2);
//
//
$button = &new GtkButton('Close');
$button->connect('clicked', 'buttons');
$button->show();
$hbox2->pack_start($button, true, true, 5);
//
//
//
$tt = &new GtkTooltips();
$tt->set_delay(200);
$tt->set_tip($button, 'Closes out this Window', '');
$tt->enable();
//
$vbox_section2 = &new GtkVBox(false, 5);
$Hbox_start->add($vbox_section2);
//
$frame2 = &new GtkFrame("Close section");
	$frame2->set_label("Database connection"); 
	$frame2->set_label_align(0.0, 0.5); 
	$frame2->set_shadow_type(GTK_SHADOW_ETCHED_IN);
	$frame2->show();
	$vbox_section2->pack_start($frame2, true, true, 5);
//
//
$db_conn = mysql_connect ("address to server", Login, password);
mysql_select_db(Login, $db_conn);
	$name = mysql_query("SELECT * FROM Userinfo Where id = '1'"); 
		while($name2 = mysql_fetch_array($name)) {
   			$handle = "".$name2['First']." ".$name2['Last']."";
		}
//
if ($db_conn){
$label2 = &new GtkLabel();
	$label2->set_text("Hello $handle, \n   
If you are reading this \n
then you are connected \n
to the database.");
	$label2->set_justify(GTK_JUSTIFY_LEFT);
$frame2->add($label2);
	$label2->show();
	
		}else{
		
$label2 = &new GtkLabel();
	$label2->set_text("mySQL Error: ".mysql_error());
	$label2->set_justify(GTK_JUSTIFY_LEFT);
$frame2->add($label2);
	$label2->show();
	}	
//	
/*realize the underlying GdkWindow, flag the GtkWindow's visibility and map
it onto the screen, all in one simple line*/
//
$window->show_all();
//
/*without the main loop, there is no PHP-GTK script*/
//
Gtk::main();
?>

Sponsored Links

Member Spotlight
Crime
Crime
SC, usa
Posts: 506
Joined: March 2002
Show All Member Profiles 
Forum Statistics
Forums45
Topics46,823
Posts81,993
Average Daily Posts11
Members2,159
Most Online1,567
Apr 25th, 2010
Latest Postings
Top Posters(All Time)
UGN Security 39,987
Gremelin 7,195
§intå× 3,255
SilentRage 1,273
Ice 1,146
pergesu 1,136
Infinite 1,041
jonconley 955
Girlie 908
unreal 860
Top Liked Users (All Time)
§intå× Likes: 1
Cold Sunn Likes: 1
Crime Likes: 1
Cyrez Likes: 1
Ghost Likes: 1
Gremelin Likes: 4
Ice Likes: 1
unreal Likes: 1
Top Liked Users (30 Days)
Powered by UBB.threads™ PHP Forum Software 7.6.0
(Snapshot build 20160902)