WEB开发网
开发学院WEB开发PHP PHP开发学堂:PHP-GTK介绍及其应用 阅读

PHP开发学堂:PHP-GTK介绍及其应用

 2008-02-15 18:32:22 来源:WEB开发网   
核心提示:GtkVBox()GtkVBox()建立一个直立的container来放入widgets,GtkLabel()GtkLabel()可以建立一个label,PHP开发学堂:PHP-GTK介绍及其应用(4),内容文字可以建立时设定也可以建立后用方法来设定,如果没有设定内容文字,而pack用的方法一般是pack_start(

  
  GtkVBox()
  GtkVBox()建立一个直立的container来放入widgets。
  
  GtkLabel()
  GtkLabel()可以建立一个label,内容文字可以建立时设定也可以建立后用方法来设定,如果没有设定内容文字,将会建立一个空的label(这是废话吗┅?)。
  
  GtkHSeparator()
  GtkHseparator()建立一个水平线。
  
  GtkEntry()
  GtkEntry()建立一个textbox供使用者输入资讯。
  
  GtkHButtonBox()
  GtkHButtonBox()建立一个以水平方式排列Button的container。
  
  GktBtton()
  GtkButton()或许可以说是GUI程序中最常用的widget了,它建立一个可以让使用者按的按钮。
  
  4.3 开始
  
  If(!class_exist("gtk"))
  {
  dl("php_gtk.".(strstr(PHP_OS,"WIN") ? "dll" : "so"));
  }
  这段程序码会判断PHP-GTK延伸模组是否已启动,如果没有,它就会读取适当的档案。在上面的范例中,是靠判断执行的作业系统是Windows还是其它来判断要载入php_gtk.dll还是php_gtk.so。
  
  Function delete_event()
  {
  return false;
  }
  这里建立了一个名为delete_event的function,这个function是等会儿delete-event signal发出时的callback function。内容传回false会告诉PHP-GTK用预设的signal handler来处理,而预设的handler会关闭视窗(同时会呼叫该视窗的destroy() 函式),在这里,它会关闭程序(因为这个范例程序只有一个主视窗,一旦关闭就会关闭程序)。
  
  Function destroy()
  {
  Gtk::main_quit();
  }
  这里建立了一个函式,destroy()。在这个程序中,这个函式是很重要的,因为我们在关闭程序的时候会连接到它。之前说过,Gtk::main_quit()会关闭程序,如果我们在这个程序中没有定义这个function或是这个function里面没有Gtk::main_quit()这行,那么这个程序就不会关闭了。以上一段程序码说明里提到的delete-event来说,return false之后预设会执行关闭视窗的动作,还会呼叫destroy()函式,如果这里没有定义或是没有Gtk::main_quit()这段的话,主视窗的确会关闭,可是程序并不会结束,因为主程序回圈aGtk::main()还在跑。
  
  php
  $window = &new GtkWindow();
  //设定名字以辨别各个视窗
  $window->set_name('main window');
  //设定视窗的标题
  $window->set_title('对PHP-GTK的介绍');
  //设定视窗的大小
  $window->set_usize(160, 120);
  //呼叫destroy()函式来结束程序
  $window->connect('destroy', 'destroy');
  //呼叫delete_event()函式来关闭视窗
  $window->connect('delete-event', 'delete_event');
  //设定视窗的边框宽度
  $window->set_border_width(10);
  //设定视窗的位置
  $window->set_position(GTK_WIN_POS_CENTER);
  //显示视窗和所有child widget (不显示就看不到)
  //最后这两行一定要放在程序码的最后,否则什么都看不到
  $window->show_all();
  Gtk::main();
  ?>
  执行程序可以看到如下的图:
  
 

  //建立一个GtkFrame
  $frame" = &new GtkFrame('经过简易修改的程序');
  //把GtkFrame放到GtkWindow里
  $window->add($frame);
  //最下面两行不要动
  
  结果如下图:
  
 

  下面这段建立一个GtkVBox作为container,并把GtkEntry、GtkHSeperator、GtkLabel和GtkButtonBox都pack进去,所谓pack,是GtkBox底下的container们特别加入的放入widget的方法,就类似于add(),而pack用的方法一般是pack_start()和pack_end(),比add()好的地方是可以控制将widget增加进去之后widget的位置(不过只要是container就会有add()方法),欲查询详细资料请至
  http://gtk.php.net/manual/en。

上一页  1 2 3 4 5  下一页

Tags:PHP 开发 学堂

编辑录入:coldstar [复制链接] [打 印]
赞助商链接