• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Połączenie w QT5

Object Storage Arubacloud
0 głosów
162 wizyt
pytanie zadane 9 czerwca 2016 w C i C++ przez aspoka Mądrala (5,290 p.)
zamknięte 10 czerwca 2016 przez aspoka

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?

komentarz zamknięcia: Problem rozwiązany. Usunąć i napisać od zera w inny, poprawny  sposób.

Podobne pytania

0 głosów
2 odpowiedzi 213 wizyt
pytanie zadane 17 lipca 2018 w C i C++ przez niezalogowany
0 głosów
1 odpowiedź 135 wizyt
pytanie zadane 7 stycznia 2018 w C i C++ przez amb00 Bywalec (2,000 p.)
0 głosów
1 odpowiedź 161 wizyt
pytanie zadane 2 maja 2017 w C i C++ przez Sidzej Użytkownik (850 p.)

92,757 zapytań

141,679 odpowiedzi

320,437 komentarzy

62,101 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...