Développer des exemples de code GUI en utilisant php

怪我咯
Libérer: 2023-03-14 06:56:02
original
2767 Les gens l'ont consulté

Introduction à l'interface graphique

Interface utilisateur graphique (GUI en abrégé, également connue sous le nom d'Interface utilisateur graphique) fait référence à une interface utilisateur d'exploitation informatique affichée graphiquement.

Les interfaces graphiques sont plus accessibles visuellement aux utilisateurs que les interfaces de ligne de commande utilisées dans les premiers ordinateurs. Cependant, si cette interface souhaite inviter l'utilisateur à envoyer « divers messages visuels beaux mais non monotones » à des endroits spécifiques de l'écran d'affichage pour des « changements de statut », elle nécessitera inévitablement plus de puissance de calcul qu'une simple présentation de message.

Un simple bloc-notes (ne peut ouvrir que les fichiers pour modification)

<?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 ();                      // 最重要的一句,不可少的
?>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal