[置顶] 关于qt 下 默认connect 中的SIGNAL(clicked())的问题

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,Signal)