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.