Witam, piszę sapera w QT5. Na razie mam tablice przycisków i chcę by po kliknięciu przycisku wyświetlił się na nim X. Gdy włączam program pojawia się komunikat: "QObject::connect: No such slot MojeOkno::onClick(i,j)" Oczywiście program nie działa, ale okienko się pojawia.
Mój kod
main.cpp
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MojeOkno o;
o.show();
return a.exec();
}
mainwindow.h
#ifndef MOJEOKNO_H
#define MOJEOKNO_H
#include <QMainWindow>
#include <QPushButton>
#include <QMainWindow>
#include <QLabel>
#include "patch.h"
class MojeOkno : public QMainWindow
{
Q_OBJECT public:
explicit MojeOkno(QWidget *parent = 0);
QPushButton* button;
QLabel* label1;
QLabel* label2;
QLabel* label3;
QLabel* label4;
QPushButton*** tab;
Patch* p;
signals:
public slots:
void onClick(int i, int j);
};
#endif // MOJEOKNO_H
mainwindow.cpp
#include "mainwindow.h"
#include <QApplication>
#include <QTextCodec>
MojeOkno::MojeOkno(QWidget *parent) : QMainWindow(parent)
{
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
setGeometry(100, 100, 400, 460);
setWindowTitle("Saper");
label1 = new QLabel("Bomby:", this);
label1->setGeometry(20, 20, 80, 40);
label2 = new QLabel("10", this);
label2->setGeometry(120, 20, 80, 40);
label3 = new QLabel("Czas:", this);
label3->setGeometry(220, 20, 80, 40);
label4 = new QLabel("0", this);
label4->setGeometry(300, 20, 80, 40);
tab = new QPushButton**[9];
for(int i=0; i<9; i++)
{
tab[i] = new QPushButton*[9];
for(int j=0; j<9; j++)
{
tab[i][j] = new QPushButton("", this);
tab[i][j]->setGeometry(20+i*40, 80+j*40, 40, 40);
}
}
//connect(tab[0][0], SIGNAL(clicked(bool)), this, SLOT(onClick(0,0)));
for(int i=0; i<9; i++) for(int j=0; j<9; j++)
connect(tab[i][j], SIGNAL(clicked()), this, SLOT(onClick(i, j)));
}
void MojeOkno::onClick(int i, int j)
{
tab[i][j]->setText("X");
}
W ostatnim pliku usuwam komentarz z 34 linijki i wrzucam 35 i 36 w komentarz pojawia się z kolei taki błąd: "QObject::connect: No such slot MojeOkno::onClick(0, 0)"
Ktoś ma pomysł dlaczego?