julho 21, 2017

Como usar Boost Signals

Essa biblioteca é bem interessante para quem deseja replicar o sistema de Signals/Slots de Componentes Visuais do QT.

Mas como funciona essa biblioteca?

Basicamente o objetivo da biblioteca serve para criar signais “Signals” e slots com execução síncrona, ou seja, uma simulação de múltiplos callbacks para um determinado sinal, evento ou função.

Obs. Um sinal pode chamar vários slots e um slot pode ser invocados por vários sinais.

Por exemplo, quando alguém clicar no botão “buscar” quero avisar a janela e as lista de resultado que teve essa ação de clique, como explicado no desenho abaixo:

signals

Como que ficaria esse programa usando Signals/Slots?

 

O resultado dessa execução é:

before click
refresh window
refresh list
after click

Lógico que a maneira que fiz não é da melhor forma, é somente um caso de estudo.

Estou fazendo alguns exemplo no GitHub, caso queira testar é necessário ter o Visual Studio 2015 e configurar a variável de ambiente BOOST com o diretório aonde está os arquivos da biblioteca no Windows.

Como devo usar o signal e o slot?

Explicação da variável do tipo signal:
signal

Como atribuir um slot a um sinal:
slot

A ordem de execução será conforme a atribuição via função “connect”.

https://github.com/fegomes/boost_signals

Caso tenha alguma dúvida ou sugestão, deixe nos comentários!

Deixe um comentário

CATEGORIA

Bibliotecas, C++

Tags

, , , ,