Sponsor Advertisements help keep UGN Security Online.
Sponsor Advertisements help keep UGN Security Online.
Want to earn prizes for clicking online advertisements? Join Rewards1.com.
|
|
|
#14997 - 10/03/03 11:27 AM
php-GTK+ to develope GUI's for windows
|
Junior Member
Registered: 10/03/03
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.
|
|
Top
|
|
|
|
Sponsor Advertisements help keep UGN Security Online.
Sponsor Advertisements help keep UGN Security Online.
|
|
#14999 - 10/04/03 11:47 PM
Re: php-GTK+ to develope GUI's for windows
|
Junior Member
Registered: 10/03/03
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
<?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.
|
|
Top
|
|
|
|
#15001 - 10/06/03 01:27 AM
Re: php-GTK+ to develope GUI's for windows
|
Junior Member
Registered: 10/03/03
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 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.
<?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();
?>
|
|
Top
|
|
|
|
|
Registered: 03/01/02
Posts: 505
|
|
2198 Members
46 Forums
24926 Topics
60096 Posts
Max Online: 1567 @ 04/25/10 10:20 AM
|
|
|
1 registered (Gremelin),
299
Guests and
199
Spiders online. |
|
Key:
Admin,
Global Mod,
Mod
|
|
|