Configurando e Utilizando QToolButton no Qt

No framework Qt, o QToolButton é um widget projetado para fornecer acesso rápido a comanods ou opções, frequentemente usado em barras de ferramentas. Este componente suporta inserção de ações padrão, menus, ícones e textos. Suas propriedades principais incluem arrowType, autoRaise, popupMode e toolButtonStyle, cada uma influenciando o comportamento e a aparência do botão.

Propriedade arrowType

Esta propriedade determina se o botão exibe um ícone de seta em vez de um ícone padrão. Por padrão, seu valor é Qt::NoArrow, significando que nanhuma seta é mostrada. Para alterá-la, utilize o método setArrowType, especificando o tipo desejado. Os valores possíveis são Qt::DownArrow, Qt::UpArrow, Qt::LeftArrow e Qt::RightArrow. Vale notar que a exibição da seta interage com a propriedade toolButtonStyle.

// Exemplo de configuração para seta à esquerda
meuBotao->setArrowType(Qt::LeftArrow);

Propriedade autoRaise

O atributo autoRaise, quando ativado, faz com que o botão tenha uma aparência elevada ou destacada em certas situações, como ao passar o mouse. Seu valor padrão é false. Ajuste-o usando setAutoRaise:

// Habilitar autoRaise
meuBotao->setAutoRaise(true);

Propriedade popupMode

O modo de popup controla como um menu associado ao botão é acionado. Existem três modos disponíveis:

  • DelayedPopup: o menu aparece após pressionar e segurar o botão por um tempo.
  • MenuButtonPopup: uma área distinta no botão é clicada para exibir o menu.
  • InstantPopup: o menu abre imediatamente ao clicar, e a ação padrão não é disparada.

Use setPopupMode para definir o modo:

// Configurar para menu instantâneo
meuBotao->setPopupMode(QToolButton::InstantPopup);

Propriedade toolButtonStyle

Esta propriedade define como ícones e textos são exibidos no botão. Os estilos incluem:

  • ToolButtonIconOnly: somente ícone visível.
  • ToolButtonTextOnly: somente texto visível.
  • ToolButtonTextBesideIcon: texto ao lado do ícone.
  • ToolButtonTextUnderIcon: texto sob o ícone.
  • ToolButtonFollowStyle: segue o estilo padrão do sistema.

Altere-o com setToolButtonStyle:

// Exibir texto abaixo do ícone
meuBotao->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);

Nota sobre Ações Padrão

Ao definir uma ação padrão com setDefaultAction, o texto configurado diretamente no botão pode não aparecer. Para resolver isso, associe o texto à ação:

QAction *acao = new QAction(this);
acao->setText("Texto Personalizado");
meuBotao->setDefaultAction(acao);

Sinais

O QToolButton emite sinais como clicked() e triggered, semelhantes a outros botões. O sinal triggered é específico para quando uma ação associada é acionada:

connect(meuBotao, &QToolButton::triggered, this, &MinhaClasse::acaoAcionada);

Folha de Estilo

A personalização visual do QToolButton pode ser feita via stylesheet CSS do Qt, seguindo padrões similares a outros botões, com seletor QToolButton.

Tags: Qt QToolButton C++ gui widget

Publicado em 7-6 07:57