qt 下 默认connect 中的SIGNAL(clicked()),默认的SLOT on_pushButton_clicked(),是要执行两次的,这是你只要将on_pushButton_clicked()改掉就行了。
例如:
connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(on_pushButton_clicked()));
QList<QString> collectlist;
collectlist<<"addr1"<< "addr2"<<"addr3"<<"addr4"<<"<<"addr6" ;
void MainWindow::on_pushButton_clicked()
{
int a=collectlist.size();//
QString b;
b=QString::number(a);
qDebug()<<"length ="+b;}
其中: qDebug()打印为,
"length =6"
"length =6"
也就是说on_pushButton_clicked()执行了两次,只是只要将on_pushButton_clicked()改个名字就行了,如pushButton_clicked()就可以。
注:
如果用QTcreator designer 信号槽已经自动连接好了,不用再
connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(on_pushButton_clicked()));
本文介绍Qt中按钮点击事件被触发两次的问题及其解决办法。通过修改槽函数名称可以避免重复触发,示例展示了如何定义和使用正确的槽函数。
1万+

被折叠的 条评论
为什么被折叠?



