신호를 슬롯에 연결하려고합니다. 이 프로젝트는 잘 컴파일하지만 런타임에이 오류가 얻을 :Qt 슬롯이있을 때 "no such slot"을 연결하십시오.
QObject::connect(&m_proxyModel, SIGNAL(filterAdded(int)), &m_headerView, SLOT(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;
};
내가 슬롯에 신호를 연결하는 코드 줄을 사용 : 여기
QObject::connect: No such slot QHeaderView::onFilterAdded(int)
내 코드입니다
m_proxyModel은 MySortFilterProxyModel 유형이고 m_headerView는 MyHeaderView 유형입니다. 그들은 포인터가 아닙니다.
나는 이런 일이 발생하지 않습니다. 동일한 기술을 사용하여 다른 신호와 슬롯을 연결했는데 문제가 없었습니다. 어떤 도움을 주시면 감사하겠습니다.
이것이 어떻게 중복되는지는 알 수 없습니다. 이는 일반적인 Q_OBJECT 문제를 해결하는 반면,이 질문은 Q_OBJECT와 관련된 특정 문제에만 적용됩니다. – lpapp