definição básica
O chamado slot de sinal é na verdade o modo observador. Quando ocorre um evento , por exemplo, um botão detecta que foi clicado e emite um sinal . Este tipo de envio não tem finalidade e é semelhante à transmissão. Se um objeto estiver interessado neste sinal, ele utilizará a função connect , o que significa que vinculará o sinal que deseja processar a uma de suas próprias funções (chamada de slot) para processar o sinal . Ou seja, quando o sinal for emitido, a função do slot conectado será automaticamente chamada de volta . Isso é semelhante ao padrão do observador: quando ocorre um evento de interesse, uma operação será acionada automaticamente.
Sinais e slots padrão
Primeiro, o assistente cria um projeto
implementado no construtor
Implementar sinais e slots
connect(&b1, &QPushButton::pressed, this, &MainWidget::close);
/* &b1: 信号发出者,指针类型
* &QPushButton::pressed:处理的信号, &发送者的类名::信号名字
* this: 信号接收者
* &MainWidget::close: 槽函数,信号处理函数 &接收的类名::槽函数名字
*/
Slot personalizado
/* 自定义槽,普通函数的用法
* Qt5:任意的成员函数,普通全局函数,静态函数
* 槽函数需要和信号一致(参数,返回值)
* 由于信号都是没有返回值,所以,槽函数一定没有返回值
*/
connect(b2, &QPushButton::released, this, &MainWidget::mySlot);
connect(b2, &QPushButton::released, &b1, &QPushButton::hide);
/* 自定义的槽 在头文件mainwidget.h中 声明 */
void MainWidget::mySlot()
{
b2->setText("123");
}
Sinal personalizado para obter duas conversões de janela independentes
Criar nova subjanela
Personalize funções de sinal e slot e implemente-as