Qt connect“;“没有这样的槽”;当插槽存在时

Qt connect“;“没有这样的槽”;当插槽存在时,qt,signals,signals-slots,Qt,Signals,Signals Slots,我正在尝试将信号连接到插槽。该项目编译得很好,但在运行时出现以下错误: QObject::connect: No such slot QHeaderView::onFilterAdded(int) 这是我的密码: class MySortFilterProxyModel: public QSortFilterProxyModel { Q_OBJECT public: explicit MySortFilterProxyModel(QObject *parent = 0); ~M

我正在尝试将信号连接到插槽。该项目编译得很好,但在运行时出现以下错误:

QObject::connect: No such slot QHeaderView::onFilterAdded(int)
这是我的密码:

class MySortFilterProxyModel: public QSortFilterProxyModel
{
Q_OBJECT
public:
    explicit MySortFilterProxyModel(QObject *parent = 0);
    ~MySortFilterProxyModel();
    void addFilter(int col, SteFilter *pFilter);
    void removeFilter(int col);
signals:
    void filterAdded(int);
    void filterRemoved(int);
}

class MyHeaderView: public QHeaderView
{
public:
    MyHeaderView();
    void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const;

public slots:
    void onFilterAdded(int);
    void onFilterRemoved(int);

private:
    QList<int> m_listFilters;
};
m_proxyModel为MySortFilterProxyModel类型,m_headerView为MyHeaderView类型。它们不是指针


我不明白为什么会这样。我使用相同的技术连接了其他信号和插槽,没有问题。任何帮助都将不胜感激,谢谢。

MyHeaderView类没有Q\u对象宏,请不要忘记在添加qmake后运行qmake,并且仅在构建项目之后运行它。

我不明白这是如何重复的。这解决了一般的Q_对象问题,而这个问题只针对Q_对象的一个特定问题。
QObject::connect(&m_proxyModel, SIGNAL(filterAdded(int)), &m_headerView, SLOT(onFilterAdded(int)));