Widgets intermediários em PHP-GTK
Publicado por Gabriel Falcão Gonçalves de Moura 01/11/2006
[ Hits: 5.254 ]
Homepage: http://gabrielfalcao.com
Script simples/intermediário que gera alguns widgets (objetos) em php-gtk. Funções básicas estão atribuídas aos botões de eventos.
Parcialmente comentado.
<?php /* $Id: gabriel.php,v 1.7 2002/12/04 17:31:50 fmk Exp $ */ if (!extension_loaded('gtk')) { dl( 'php_gtk.' . PHP_SHLIB_SUFFIX); } function matar() { Gtk::main_quit(); } function deleta_evento() { return false; } function criapasta() { $executar= exec("notepad.exe"); } function removepasta() { rmdir("c:\pasta"); } //função cria arquivo function criaarquivo() { $filename = 'C:\teste.txt'; $somecontent = $entry; // Tendo certeza que o arquivo existe e que há permissão de escrita primeiro. // Em nosso exemplo, nós estamos abrindo $filename em modo de append (acréscimo). // O ponteiro do arquivo estará no final dele desde // que será aqui que $somecontent será escrito com fwrite(). $handle = fopen($filename, 'w'); // Escrevendo $somecontent para o arquivo aberto. fwrite($handle, $somecontent); fclose($handle); } //fim da função edita arquivo // Desenha a janela: //cria nova janela $janela = &new GtkWindow(); //Define o título da janela $janela->set_title('Nação Linux - Instalador de Programas'); //quando o X da janela for clicado, chama a função matar(), que mata o GTK $janela->connect('destroy', 'matar'); //fixo: cancela algum evento $janela->connect('delete_event', 'deleta_evento'); //Define o tamanho da janela (largura,altura) $janela->set_default_size(400, 240); $janela->set_position(GTK_WIN_POS_CENTER); // Desenha os botões: $btn_criapasta = &new GtkButton('Editar repositórios Debian'); $btn_criapasta->connect('clicked', 'criapasta'); $repos_nacao_label = &new GtkLabel("Repositório padrão(Nação Linux)"); $repos_nacao_label->show(); $btn_removepasta = &new GtkButton('Salvar repositório'); $btn_removepasta->connect('clicked', ''); $btn_instala = &new GtkButton('Instalar pacote'); $btn_instala->connect('clicked', ''); $entry = &new GtkEntry(); $entry->set_text('http://www.nacaolivre.org/repositorio deb'); // $entry->select_region(0, 5); //seleciona os 5 primeiros caracteres $entry->show(); //$janela->add($btn_criapasta); $box1 = &new GtkVBox(); $box1->set_border_width(10); $janela->add($box1); $label = &new GtkLabel("Configurar repositórios de Programas"); $label->show(); $label2 = &new GtkLabel("Selecione o pacote a instalar:"); $label2->show(); $box1->pack_start($label); $box1->pack_start($btn_criapasta); $box1->pack_start($repos_nacao_label); $box1->pack_start($entry); $box1->pack_start($btn_removepasta); $box1->pack_start($label2); $box2 = &new GtkHBox(); $box2->set_border_width(10); //////////////////////////////////////////////////////// $list = &new GtkList(); $list->set_selection_mode(GTK_SELECTION_BROWSE); $items[] = &new GtkListItem("W32Codecs"); $items[] = &new GtkListItem("Gaim"); $items[] = &new GtkListItem("Amsn"); $items[] = &new GtkListItem("amaroK"); $items[] = &new GtkListItem("GnomeBaker"); $items[] = &new GtkListItem("Karamba"); $items[] = &new GtkListItem("KDE"); $items[] = &new GtkListItem("WindowMaker"); $items[] = &new GtkListItem("Blackbox"); $list->append_items($items); /* * Create a scrolled window and add the list widget to it - this provides * automatic scrollbars. */ $scrolled_window = &new GtkScrolledWindow(); $scrolled_window->set_policy(GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); $scrolled_window->add_with_viewport($list); $box2->pack_start($scrolled_window); $box2->pack_start($btn_instala); ///////////////////////////////////////////////////////// $box1->pack_start($box2); //Mostra todo o conteúdo adicionado à janela $janela->show_all(); //Comando que inicia o loop infinito, que só é quebrado pelo gtk::main_quit Gtk::main(); ?>
Entendendo os operadores de atribuição
WShell - Comandos do sistema via web
Formatar CPF e CNPJ para formato user friendly
Nenhum comentário foi encontrado.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (14)
Tenho dois Link's ( IP VÁLIDOS ), estou tentando fazer o failover... (0)
Pendrive não formata de jeito nenhum (4)