• Artigos
  • Projetos
  • Download
  • Lista
  • Docs
  • Comunidade
  • ?

Escalas Verticais

26/02/2007  Pablo DallOglio  Ler e Comentar

Este exemplo demonstra a utilização de escalas verticais (GtkVScale). Escalas são barras com um indicador de valor que pode ser posicionado pelo usuário dentro do intervalo definido pelo programador.

O programa a seguir consiste em uma janela contendo uma caixa horizontal (GtkHBox) com caixas verticais com duas escalas, uma para temperatura em Celsius, e outra para temperatura em Farenheit.


Assim que o usuário altera o valor da escala em Celsius, automaticamente o cursor da escala em Farenheit se posiciona na temperatura correspondente, após realizada a conversão.

<?php
/*
 * função onChanged
 * Recalcula a escala em graus farenheit
 * sempre que a seleção em Celsius mudar
 */
function onChanged($hscale1, $hscale2)
{
    
$celsius = $hscale1->get_value();
    
$farenheit = ($celsius * 1.8) + 32;
    
// °F = °C × 1.8 + 32
    
$hscale2->set_value($farenheit);
}

// cria janela principal
$window = new GtkWindow;
$window->set_default_size(40,400);
$window->set_position(GTK::WIN_POS_CENTER);
$window->set_title('VScale');
$window->set_border_width(10);

// cria caixa horizontal
$hbox = new GtkHBox;

// cria 2 caixas verticais
$vbox1 = new GtkVBox;
$vbox2 = new GtkVBox;

// cria 2 escalas verticais com seus respectivos ajustes
$hscale1 = new GtkVScale(new GtkAdjustment(20, -200, 200, 0.1, 10, 0));
$hscale2 = new GtkVScale(new GtkAdjustment(20, -200, 200, 0.1, 10, 0));
$hscale1->set_value(70);
$hscale2->set_value(158);

// define a ação para quando a seleção da primeira escala mudar
$hscale1->get_adjustment()->connect_simple('value-changed', 'onChanged', $hscale1, $hscale2);

// cria rótulos de texto
$label1 = new GtkLabel('(Celsius)');
$label2 = new GtkLabel('(Farenheit)');
$label1->set_size_request(100, -1);
$label2->set_size_request(100, -1);

// empacota os rótulos de texto e as escalas
$vbox1->pack_start($label1, false, false);
$vbox1->pack_start($hscale1);
$vbox2->pack_start($label2, false, false);
$vbox2->pack_start($hscale2);

// coloca tudo na caixa horizontal
$hbox->pack_start($vbox1);
$hbox->pack_start($vbox2);

// adiciona a caixa horizontal à janela
$window->add($hbox);

// exibe a janela
$window->show_all();
Gtk::main();
?>




Comentários

 Adicionar Comentário
 login
 Senha
 Título
 Comentário

Livros


  • Artigos

    • Jogo da Velha
    • Janelas ímã

    Projetos

    • phpGladeTool
    • GenTKode
    • Electronic Manager
    • pSheet!
  • Google

    Parceiros

 
Designed by Wolfgang Bartelme Designed by Wolfgang Bartelme

© 2006 Wordpress Themes | Theme (Not so) Fresh
XHTML CSS

PHP-GTK Brasil