QComboBox 未触发

QComboBox not triggered

我有这个 listWidget,它显示狗的列表(名称 - 品种)。 我有这个组合框,可以让我在显示简短版本(仅名称 - 品种)或详细版本(名称 - 品种 - 年龄 - 体重 - 照片)之间进行选择。 出于某种原因,我的组合框没有做任何事情,即使我的连接没有给我任何错误。 我是这样实现的:

QObject::connect(ui.comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(on_comboBox_event(int)));

void QtGuiApplication::on_comboBox_event(int selection)
{
    switch (selection) {
    case 0:
        this->populateDogsList();
        break;
    case 1:
        this->populateDogsListDetailed();
        break;

    }

}

我做错了什么?请帮帮我,我到处都看过:/谢谢。 PS。我的填充列表方法本身有效,我什至无法调试它,因为它没有进入 comboBox 事件方法。

Class 定义:(header) class QtGuiApplication : public QMainWindow { Q_OBJECT

public: QtGuiApplication(Controller& ctrl, QWidget *parent = Q_NULLPTR); ~QtGuiApplication() {};

(代码)

你的评论"No such slot QtGuiApplication::on_comboBox_event(int)"表明QtGuiApplication的头文件没有将这个成员函数声明为槽,它应该是这样的:

class QtGuiApplication: public ...
{
    Q_OBJECT
...
public slots:
    void on_comboBox_event(int);
...
}

Qt 使用一个名为moc.exe 的工具来解析头文件,它会生成用于槽查找的代码。在您的情况下,可能由于缺少声明而找不到插槽。