Tk - Visão geral dos widgets
O componente básico de um aplicativo baseado em Tk é chamado de widget. Um componente também é às vezes chamado de janela, uma vez que, em Tk, "janela" e "widget" costumam ser usados alternadamente. Tk é um pacote que fornece um rico conjunto de componentes gráficos para a criação de aplicativos gráficos com Tcl.
Tk fornece uma variedade de widgets que vão desde widgets GUI básicos, como botões e menus, até widgets de exibição de dados. Os widgets são muito configuráveis, pois possuem configurações padrão tornando-os fáceis de usar.
Os aplicativos Tk seguem uma hierarquia de widget, onde qualquer número de widgets pode ser colocado em outro widget e esses widgets em outro widget. O widget principal em um programa Tk é conhecido como widget raiz e pode ser criado criando uma nova instância da classe TkRoot.
Criação de um widget
A sintaxe para criar um widget é fornecida abaixo.
type variableName arguments options
O tipo aqui se refere ao tipo de widget como botão, rótulo e assim por diante. Os argumentos podem ser opcionais e obrigatórios com base na sintaxe individual de cada widget. As opções variam do tamanho à formatação de cada componente.
Convenção de nomenclatura de widget
Widget usa uma estrutura semelhante a pacotes de nomenclatura. No Tk, a janela raiz é nomeada com um ponto (.) E um elemento na janela, por exemplo, o botão é denominado .myButton1. O nome da variável deve começar com uma letra minúscula, dígito ou sinal de pontuação (exceto um ponto). Após o primeiro caractere, outros caracteres podem ser letras maiúsculas ou minúsculas, números ou sinais de pontuação (exceto pontos). Recomenda-se usar uma letra minúscula para iniciar o rótulo.
Convenção de Nomenclatura de Cores
As cores podem ser declaradas usando nomes como vermelho, verde e assim por diante. Ele também pode usar hexadecimal representando com #. O número de dígitos hexadecimais pode ser 3, 6, 9 ou 12.
Convenção de Dimensão
A unidade padrão é pixels e é usada quando não especificamos nenhuma dimensão. As outras dimensões são i para polegadas, m para milímetros, c para centímetros e p para pontos.
Opções Comuns
Existem tantas opções comuns disponíveis para todos os widgets e elas estão listadas abaixo na tabela a seguir -
Sr. Não. | Sintaxe e descrição |
---|---|
1 | -background color Usado para definir a cor de fundo do widget. |
2 | -borderwidth width Usado para desenhar com borda em efeitos 3D. |
3 | -font fontDescriptor Usado para definir a fonte do widget. |
4 | -foreground color Usado para definir a cor do primeiro plano para o widget. |
5 | -height number Usado para definir a altura do widget. |
6 | -highlightbackground color Usado para definir o retângulo de cor para desenhar ao redor de um widget quando o widget não tem o foco de entrada. |
7 | -highlightcolor color Usado para definir o retângulo de cor para desenhar ao redor de um widget quando o widget tem o foco de entrada. |
8 | -padx number Define o padx para o widget. |
9 | -pady number Define o pady para o widget. |
10 | -relief condition Define o relevo 3D para este widget. A condição pode ser elevada, afundada, plana, crista, sólida ou sulcada. |
11 | -text text Define o texto do widget. |
12 | -textvariable varName Variável associada ao widget. Quando o texto do widget muda, a variável é definida com o texto do widget. |
13 | -width number Define a largura do widget. |
Um exemplo simples de opções é mostrado abaixo.
#!/usr/bin/wish
grid [label .myLabel -background red -text "Hello World" -relief ridge -borderwidth 3]
-padx 100 -pady 100
Quando executarmos o programa acima, obteremos a seguinte saída.
A lista de widgets disponíveis é categorizada abaixo -
Widgets básicos
Sr. Não. | Widget e descrição |
---|---|
1 | Label Widget para exibir uma única linha de texto. |
2 | Button Widget que é clicável e aciona uma ação. |
3 | Entry Widget usado para aceitar uma única linha de texto como entrada. |
4 | Message Widget para exibir várias linhas de texto. |
5 | Text Widget para exibir e opcionalmente editar várias linhas de texto. |
6 | Toplevel Janela com todas as bordas e decorações fornecidas pelo gerenciador de janelas. |
Layout Widgets
Sr. Não. | Widget e descrição |
---|---|
1 | Frame Widget de contêiner para conter outros widgets. |
2 | Place Widget para manter outros widgets em um lugar específico com coordenadas de sua origem e um tamanho exato. |
3 | Pack Widget simples para organizar widgets em blocos antes de colocá-los no widget pai. |
4 | Grid Widget para aninhar widgets embalados em diferentes direções. |
Widgets de seleção
Sr. Não. | Widget e descrição |
---|---|
1 | Radiobutton Widget que possui um conjunto de botões liga / desliga e rótulos, um dos quais pode ser selecionado. |
2 | Checkbutton Widget que possui um conjunto de botões liga / desliga e rótulos, muitos dos quais podem ser selecionados. |
3 | Menu Widget que atua como suporte para itens de menu. |
4 | Listbox Widget que exibe uma lista de células, uma ou mais das quais podem ser selecionadas. |
Mega Widgets
Sr. Não. | Widget e descrição |
---|---|
1 | Dialog Widget para exibir caixas de diálogo. |
2 | Spinbox Widget que permite aos usuários escolher números. |
3 | Combobox Widget que combina uma entrada com uma lista de opções disponíveis para uso. |
4 | Notebook Widget com guias que ajuda a alternar entre uma das várias páginas, usando uma guia de índice. |
5 | Progressbar Widget para fornecer feedback visual sobre o andamento de uma operação longa, como upload de arquivo. |
6 | Treeview Widget para exibir e permitir navegar por uma hierarquia de itens mais em forma de árvore. |
7 | Scrollbar Widgets de rolagem sem widgets de texto ou tela. |
8 | Scale Widget de escala para escolher um valor numérico por meio de controles deslizantes. |
Outros Widgets
Sr. Não. | Widget e descrição |
---|---|
1 | Canvas Widget de desenho para exibir gráficos e imagens. |
Abordaremos cada um desses widgets nos próximos capítulos.