Heim >Backend-Entwicklung >PHP-Tutorial >Entwickeln Sie GUI-Codebeispiele mit PHP

Entwickeln Sie GUI-Codebeispiele mit PHP

怪我咯
怪我咯Original
2017-07-16 10:28:172796Durchsuche

GUI-Einführung

Grafische Benutzeroberfläche (kurz GUI, auch bekannt als Graphical User Interface) bezieht sich auf eine Benutzeroberfläche für den Computerbetrieb, die grafisch angezeigt wird.

Grafische Schnittstellen sind für Benutzer visuell zugänglicher als die Befehlszeilenschnittstellen, die in frühen Computern verwendet wurden. Wenn diese Schnittstelle den Benutzer jedoch mit „verschiedenen schönen, aber nicht eintönigen visuellen Nachrichten“ an bestimmten Stellen auf dem Bildschirm zu „Statusänderungen“ auffordern möchte, ist zwangsläufig mehr Rechenleistung erforderlich als bei der einfachen Nachrichtendarstellung.

Ein einfacher Notizblock (kann Dateien nur zum Ändern öffnen)

<?php
set_time_limit (0);       // 设置运行时间

if (!class_exists ("gtk"))           // 判断是否有GTK模块
    if (strtoupper (substr ($_SERVER["OS"], 0, 3)) == "WIN")
        dl ("php_gtk.dll");
    else 
        dl ("php_gtk.so");

$window = &new GtkWindow ();              // 建一个窗口
$window->set_uposition (100, 100);        //  窗口出现位置
$window->set_usize ((gdk::screen_width()-200), (gdk::screen_height()-150));  // 窗口大小
$window->set_title ("WINDOWS");         // 设置窗口标题
$window->connect_object (&#39;destroy&#39;, array (&#39;gtk&#39;, &#39;main_quit&#39;));     // 注册窗口的事件

$vbox = &new GtkVBox ();           
$hbox = &new GtkHBox ();         
$window->add ($vbox);


$menuBar = &new GtkMenuBar ();               // 创建菜单
$vbox->pack_start ($menuBar, false, false, 0);

$file = &new GtkMenuItem ("File");
$menuBar->append ($file);

$fileMenu = &new GtkMenu ();
$open = &new GtkMenuItem ("Open");
$save = &new GtkMenuItem ("Save");
$line = &new GtkMenuItem ();
$line->set_sensitive (true);
$exit = &new GtkMenuItem ("Exit");
$fileMenu->append ($open);
$open->connect_object (&#39;activate&#39;, &#39;showFileSelection&#39;);        
$fileMenu->append ($save);
$save->connect_object (&#39;activate&#39;, &#39;saveFile&#39;);
$fileMenu->append ($line);
$fileMenu->append ($exit);
$exit->connect_object (&#39;activate&#39;, array (&#39;gtk&#39;, &#39;main_quit&#39;));

$file->set_submenu ($fileMenu);

$scroll = &new GtkScrolledWindow ();
$scroll->set_border_width (8);
$scroll->set_policy (GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
$hbox->pack_start ($scroll, true, true, 0);
$vbox->pack_start ($hbox, true, true, 1);

$text = &new GtkText ();
$text->set_editable (true);
$text->set_word_wrap (true);
$scroll->add ($text);

function showFileSelection ()           // 文件选择函数
{
    $file = &new GtkFileSelection ("File Selection");
    $ok_button = $file->ok_button;
    $ok_button->connect (&#39;clicked&#39;, &#39;openFile&#39;, $file);
    $ok_button->connect_object (&#39;clicked&#39;, array ($file, &#39;destroy&#39;));
    $cancel_button = $file->cancel_button;
    $cancel_button->connect_object (&#39;clicked&#39;, array ($file, &#39;destroy&#39;));
    $file->show ();
}

$filePath = null;
function openFile ($button, $f)          // 打开文件的函数
{
    GLOBAL $text, $save, $filePath;
    $filePath = $f->get_filename ();
    if (is_file ($filePath))
    {
        $fp = fopen ($filePath, &#39;r&#39;);
        while (!feof ($fp))
            $str .= fgets ($fp, 1024);
        $text->insert (null, null, null, $str);
        fclose ($fp);
        return $filePath;
    }
}

function saveFile ()                // 保存文件的函数
{
    GLOBAL $filePath, $text;
    if (is_file ($filePath))
    {
        $str = $text->get_chars (0, -1);
        $fp = fopen ($filePath, &#39;w&#39;);
        fwrite ($fp, $str);
        fclose ($fp);
    }
    return;
}

$window->show_all ();             // 显示窗体内的所有控件
gtk::main ();                      // 最重要的一句,不可少的
?>

Das obige ist der detaillierte Inhalt vonEntwickeln Sie GUI-Codebeispiele mit PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn