首页 > 解决方案 > QT - 检测按下哪个按钮

问题描述

我在使用Application::sender. 我有几个QPushButtons,在一个功能中,我想检测按下了哪个按钮。

我知道使用Application::sender可能是解决方案,但是我遇到了麻烦。即我得到两个错误:

这是我的代码:

void MainWindow::on_button_click()
{
    unsigned long i=0;
    for(; i<buttons.size(); ++i)
    {
        if(buttons[i] == QApplication::sender())
            break;
    }
    if(checks[i]->checkState() == false)
        buttons[i]->setText("Undone");
    else
        buttons[i]->setText("Done!");
}

其中变量buttonsvectorQPushButton *

标签: c++qt

解决方案


调用插槽所在对象的方法 sender() ,而不是 QApplication 的静态成员。

换句话说,删除 QApplication:: 并且您的代码应该按预期工作。


推荐阅读