PHPGTK实例
项目 - 计算器
主程序如下,完整的程序请在后面下载~~:
复制内容到剪贴板
代码:
<?php
/*
* PHPEDIT
* Author: tonyvicky (VonkyCity)
* Email/MSN: sunshinesun_9@163.com
* WebSite: http://www.phpgtk.net
*/
include(dirname(__FILE__)."/config.php");
include(dirname(__FILE__)."/include/functions.php");
include(dirname(__FILE__)."/include/callback_01.php");
include(dirname(__FILE__)."/include/callback_02.php");
include(dirname(__FILE__)."/include/UI_class.php");
$now_page = 0;
$file_info = array();
// MainWindow's Menu
$menu_definition = array(
"文件" => array("_New|N", "_Open|O", "_Close", "<hr>", "_Save|S", "Save _As","<hr>", "E_xit"),
"编辑" => array("Cu_t", "_Copy", "_Paste", "<hr>", "Select _All", "<hr>", "_Undo|Z","_Redo|Y"),
"查看" => array(),
"搜索" => array(),
"工具" => array("_Run|T","_Make|M"),
"文档" => array(),
"帮助" => array(),
);
// UI PART
$window = new GtkWindow();
$window->set_default_size(800,600);
$window->set_title("PHPGEDIT");
$window->connect("destroy","quit");
$accel_group = new GtkAccelGroup();
$window->add_accel_group($accel_group);
$vbox = new GtkVBox(false,0);
$window->add($vbox);
$menu = new Menu($vbox, $menu_definition, $accel_group);
$toolbar = new GtkToolBar();
$vbox->pack_start($toolbar,false,false,0);
$toolbar->set_style(GTK_TOOLBAR_BOTH);
$toolitem01 = new GtkToolItem();
$toolitem02 = new GtkToolItem();
$toolitem03 = new GtkToolItem();
$toolitem04 = new GtkToolItem();
$toolitem05 = new GtkToolItem();
$NewButton = GtkButton::new_from_stock("gtk-new");
$NewButton->set_relief(GTK_RELIEF_NONE);
$NewButton->connect("clicked","Menu_New");
$OpenButton = GtkButton::new_from_stock("gtk-open");
$OpenButton->set_relief(GTK_RELIEF_NONE);
$OpenButton->connect("clicked","Menu_Open");
$SaveButton = GtkButton::new_from_stock("gtk-save");
$SaveButton->set_relief(GTK_RELIEF_NONE);
$SaveButton->connect("clicked","Menu_Save");
$CloseButton = GtkButton::new_from_stock("gtk-close");
$CloseButton->set_relief(GTK_RELIEF_NONE);
$CloseButton->connect("clicked","Menu_Close");
$QuitButton = GtkButton::new_from_stock("gtk-quit");
$QuitButton->set_relief(GTK_RELIEF_NONE);
$QuitButton->connect("clicked","Menu_Exit");
$toolbar->add($toolitem01);
$toolbar->add($toolitem02);
$toolbar->add($toolitem03);
$toolbar->add($toolitem04);
$toolbar->add($toolitem05);
$toolitem01->add($NewButton);
$toolitem02->add($OpenButton);
$toolitem03->add($SaveButton);
$toolitem04->add($CloseButton);
$toolitem05->add($QuitButton);
$vpaned = new GtkVPaned();
$vpaned->set_position(460);
$vbox->pack_start($vpaned, 1, 1);
$notebook = new GtkNoteBook();
$lang_mgr = new GtkSourceLanguagesManager();
$lang = $lang_mgr->get_language_from_mime_type("text/html");
$message_buffer = GtkSourceBuffer::new_with_language($lang);
$message = GtkSourceView::new_with_buffer($message_buffer);
$message->set_show_line_numbers(1);
$message->set_wrap_mode(1);
$message_buffer->set_highlight(1);
$message->set_editable(0);
$scrolled_message = new GtkScrolledWindow();
$scrolled_message->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
$scrolled_message->set_shadow_type(Gtk::SHADOW_IN);
$scrolled_message->add($message);
$vpaned->pack1($notebook,true,true);
$vpaned->pack2($scrolled_message,true,true);
$notebook->set_scrollable(true);
$notebook->connect('switch-page', 'onSwitchPage', $window);
$window->show_all();
//$vbox->destroy();
Gtk::main();
?>

下载该程序: http://www.phpgtk.net/upload/phpgedit.tar.gz
编译PHPGTK时应该加上 --enable-sourceview 参数
当然了,你必须确定你已经安装了libgtksourceview-dev这个包