QT按钮被触发两次的问题

  • QT自带翻译机制
    • 规则强制指定
    • 修改槽函数形式

QT自带翻译机制

如果用官方的写法on_btn_pressed()可以不用写connect函数,可以直接触发槽函数。如果此时用connect再次连接的话,就会导致on_btn_pressed()被执行两次。解决办法为:

可能有问题的代码,会被执行两次
connect(ui->btn,signal(pressed()),this,slot(on_btn_pressed()));

规则强制指定

要么改为:connect(ui->btn,signal(pressed()),this,slot(on_btn_pressed()),qt::uniqueconnection);

修改槽函数形式

要么改为:connect(ui->btn,signal(pressed()),this,slot(btn_pressed()));

通过修改名字避免QT翻译器翻译成两次执行.

你可能感兴趣的:(QT)