注意:类中一定要添加Q_OBJECT声明,如果忘了添加导致编译错误。
解决方法:将文件移除项目,再重新添加即可重新生成moc
第一步:声明信号与槽
private slots: void mainslot(QString); void on_pushButton_clicked(); signals: void mainsignal(QString);
第二步:connect 信号与槽
connect(this,SIGNAL(mainsignal(QString)),this,SLOT(mainslot(QString)));
第三步:信号与槽的实现
1、发射信号
void MainWindow::on_pushButton_clicked() { emit this->mainsignal("hello world"); }
2、槽
void MainWindow::mainslot(QString context) { this->setWindowTitle(context); }
如图所示,通过点击按键,设置窗口名称