Reilgun
@Reilgun

Connect не принемает 4 аргумента хотя все правильно?

Class.h

class Clock_me
{
public:
    Clock_me(QWidget &widget);
    void create_clock(QWidget &widget);
    void update_clock();
public slots:
    void handleButton();

private:
    QLabel *label;
    QPushButton *button;
    QString TimeString;
};


Clock.cpp

Clock_me::Clock_me(QWidget &widget)
{
    label = new QLabel(&widget);
    button = new QPushButton("MMM dd HH:mm:ss", &widget);
    connect(&button, &QPushButton::clicked, this, &Clock_me::handleButton);

}

void Clock_me::handleButton() {
    qDebug() << "Button clicked!";
}


Не смотря, что код написан правильно по гайду и у других также, у меня выдает ошибку, а если уберу this будет жаловаться что сигнал нельзя приобразовать

6661a46baa59a866095644.png

GitHub с кодом
https://github.com/REILGUUN/Navbaria.git
  • Вопрос задан
  • 155 просмотров
Решения вопроса 1
class Clock_me : public QObject
{
Q_OBJECT
public:
    Clock_me(QObject* parent = nullptr);
    void create_clock(QWidget &widget);
    void update_clock();
public slots:
    void handleButton();

private:
    QLabel *label;
    QPushButton *button;
    QString TimeString;
};


Clock_me::Clock_me(QObject* parent)
:Qbject(parent)
{
    label = new QLabel();
    button = new QPushButton("MMM dd HH:mm:ss",);
    connect(&button, &QPushButton::clicked, this, &Clock_me::handleButton);

}

void Clock_me::handleButton() {
    qDebug() << "Button clicked!";
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@Wexter
button = new QPushButton("MMM dd HH:mm:ss", &widget);
connect(&button

Видимо опечатка, вместо указателя передаётся адрес указателя
Ответ написан
AshBlade
@AshBlade
Просто хочу быть счастливым
Проверь, что нет наложения неймспейсов - connect это также и функция сокетов, которая принимает 3 аргумента.
Попробуй явно указать неймспейс для connect:
QObject::connect(&button, &QPushButton::clicked, this, &Clock_me::handleButton);
Ответ написан
@Gordan13
вам не хватало макроса Q_OBJECT , который описывает взаимосвязи объектов
и в коннекте лишний "&"
QObject::connect(button, &QPushButton::clicked, this, &Clock_me::handleButton);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы