Widgets intermediários em PHP-GTK
Publicado por Gabriel Falcão Gonçalves de Moura 01/11/2006
[ Hits: 5.450 ]
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();
?>
Gerador de palavras aleatórias
Lista de Tarefas - Gerenciador de Projeto Simples
Gerenciador de Escola de Informática
Acesso a Diretórios ou Arquivos Específicos
Descobrir qual SO o usuário que está acessando o seu site/software está utilizando
Nenhum comentário foi encontrado.
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
VOL já não é mais como antes? (4)
É normal não gostar de KDE? (12)
E aí? O Warsaw já está funcionando no Debian 13? [RESOLVIDO] (15)
Secure boot, artigo interessante, nada técnico. (4)
copiar library para diretorio /usr/share/..... su com Falha na a... (1)









