Qt不希望的pushButton按下信号的双重执行

时间:2016-09-29 13:19:29

标签: c++ qt

我在设计模式下使用Qt Creator 3.3.1创建了一个pushButton,并且在设计器中我将按钮与按下的信号连接起来()。它工作正常,但有时当我在按下的事件中设置pushButton来隐藏或显示或更改stacketWidget的索引时,按下的信号()会连续重复两次。我没有在代码中手动连接,但它全部由设计人员自动完成。我使用Qt 4.8.6嵌入式。感谢

void myclass::on_pushButton_1_pressed()
{

qDebug("Pressed event");
ui->pushButton_2->hide(); //if I comment this line the pressed signal is not repeated twice

}

1 个答案:

答案 0 :(得分:4)

Qt设计师表单有一个名为autoconnect的功能。如果有一个名为on_{ObjectName}_{SignalName}的插槽,它会自动连接表单小部件的信号。

所以你的插槽连接了两次,一次是通过你在设计器中的连接,一次是通过自动连接。

在设计器中删除您的连接,或重命名您的插槽以解决其他呼叫