CAPÍTULO 3
Programação visual com Software Livre
EDIT LIN EDITORIAL S.L,  dos autores  Daniel Campos Fernández e José Luis Redrejo.  Prólogo de Benoit Minisini



3.3 Galeria de controles
Controles básicos



Tanto gb.qt como gb.gtk possuem uma serie de controles básicos para desenvolver uma interface gráfica. Em seguida detalharemos estes controles e suas características principais.

* Label: é uma etiqueta simples que contem uma linha de texto não muito longa. Sua única função é mostrar um texto em uma posição dentro de um formulário. A propriedade text é a que determina o texto a mostrar a cada momento. Podemos modificar tanto sua cor de fundo (Background), como a cor de primeiro plano (ForeGround). Como os outros controles, responde aos eventos do mouse, mas  em  um  dado  momento,    aliado   a   MousePress   e   MouseRelease, pode servir para implementar um botão personalizado.

* TextLabel: é muito similar ao Label, mas tem a particularidade de mostrar o texto formatado em HTML. Desta forma, indicando uma cadeia com tags HTML na propriedade Text, poderemos ter texto que combine negrito, itálica, subscrito e outras  características de texto enriquecido.


TextLabel1.text = "<b> Texto com HTML</b><br>Dentro de uma <i>etiqueta."   


Figura 6
Figura 6. Controles de gb.qt e gb.gtk


O componente gb.gtk  é capaz de representar menos tags HTML, nas versões atuais. Por sua parte, gb.qt permite a inclusão de tabelas e imagens a partir de um arquivo. Um programa desenvolvido para ser independente do toolkit, não deveria abusar disto. Mas um programa expressamente desenhado para trabalhar com  gb.qt , ao contrario, pode aproveitar de suas características extras.

* TextBox: uma caixa de texto de uma só linha, na qual o usuário pode modificar, copiar, cortar ou apagar o texto. O texto introduzido recebe modificação por código mediante a propriedade Text. Alem do mais o método Select permite selecionar e ressaltar por código uma parte do texto, e Selection dota de algumas propriedades para conhecer o texto que o usuário selecionou.

Gambas utiliza codificação UTF-8 na interface gráfica, por isso é que um caracter pode possuir 1, 2, ou 3 bytes de tamanho. Assim escrever Len(TextBox1.Text) para conhecer o tamanho em caracteres de um texto, nem sempre dará o resultado esperado. Em seu lugar, devemos empregar o método TextBox.Lenght, que da sempre o tamanho em caracteres do texto.

* TextArea: trata-se de uma caixa de texto que é capaz de conter múltiplas linhas. E permite também o retorno do carro. Como no caso do TextBox, o método Selection e a propriedade Select determina o texto selecionado. Alem disso este controle dispõe de dois métodos Undo e Redo que equivale ao comandos Fazer e Desfazer de qualquer editor de textos. Quer dizer, eliminam as ultimas alterações do usuário ou o volta a situação anterior no texto.

* Botões: Gambas tem três tipos de botões. O primeiro, Button, é um botão normal, dispõe de uma propriedade Text que indica o texto a mostrar, assim como uma propriedade Picture para mostrar um ícone identificador. Este controle dispõe do evento Click que dispara quando pressionamos o botão esquerdo do mouse (o direito se estiver configurado para canhotos). Outro tipo de botão é o ToggleButton, que mantem o estado anterior quando pressionado,quer dizer, uma vez fica no estado pressionado, e ao pressionar outra vez, volta ao estado anterior. A propriedade Value serve para conhecer ou variar o estado: FALSE significa 'não pressionado' E TRUE 'pressionado'. O botão ToolButton, é similar mas só mostra um pequeno ícone sem texto. Está desenhado para inserir em barra de ferramentas, habituais na parte superior das interfaces, como acesso rápido a certas funções comuns. Pode atuar como um botão normal, se sua propriedade Toggle estiver FALSE, ou como um interruptor (como um ToggleButton) se Toggle for TRUE . mesmo assim dispõe de uma propriedade Border que se for FALSE dará aparência plana ao botão e se for TRUE o mostrará como relevo, como um botão normal.

Os botões Toggle podem parecer confusos com alguns temas do KDE ou GNOME, sendo difícil para o usuário determinar se está pressionado ou não. Quando possível devemos empregar um CheckBox no lugar de um ToggleButton, o qual ressaltará seu estado de algum modo, por exemplo, trocando a cor do fundo ou o ícone que o mostra. Isto evitará problemas com os futuros usuários da aplicação.

* CheckBox: mostra um texto determinado pela propriedade Text,  junto com uma caixa onde o usuário pode clicar para marcar ou desmarcar a opção.

A propriedade Value indica se o usuário marcou o CheckBox, o evento Change informa a cada troca. Empregamos ele para opções de configuração que só dispõe de dois possível valores: 'Ativado ou Desativado', 'Sim ou Não', 'Verdadeiro ou Falso'.

* RadioButton: é similar ao CheckBox, mas tem uma particularidade de que todos os RadioButton existentes dentro de um mesmo contêiner, estão internamente agrupados, e em cada momento só pode haver um ativo. Quando o usuário ativa um deles, o resto se desativa,  por isso que  o empregamos para selecionar uma opção que exclua as outras dentro de um menu de opções.

* PictureBox: este controle tem a função de mostrar uma imagem. Responde ao evento do mouse, podemos emprega-lo como botão personalizado. Sua propriedade Stretch permite adaptar a imagem ao tamanho do PictureBox em cada momento, a propriedade Border determina sua aparência plana ou com relevo e a propriedade Picture representa a imagem a mostrar.





HOME

Cópia literal

Extraído do livro “GAMBAS, programação visual com software Livre”, da editora EDIT LIN EDITORIAL S.L,  dos autores  Daniel Campos Fernández e José Luis Redrejo. Prólogo de Benoit Minisini

LICENSA DESTE DOCUMENTO


É permitido a cópia e distribuição da totalidade ou parte desta obra sem fins lucrativo. Toda cópia total ou parcial devera expressar o nome do autor e da editora e incluir esta mesma licença, adicionando se é uma cópia literal “Cópia literal”. Se é autorizada a modificação e tradução da obra  sem fins lucrativo sempre se deve constar na obra resultante  a modificação o nome da obra original o autor da obra original e o nome da editora e a obra resultante também deverá ser livremente reproduzida, distribuída, ao publico e transformada em termos similares ao exposto nesta licença.

Tradução

Cientista
 (Antonio Sousa)