Я пишу, чтобы написать простую функцию подключения сигнала к слоту в Qt Creator (Qt5.1). Вот (часть) моего кода для этого.
linkports.h
#ifndef LINKPORTS_H
#define LINKPORTS_H
#include "portconfig.h"
class LinkPorts
{
public:
LinkPorts();
PortConfig ports[16];
void enabledChangeEmit(int port, bool value);
signals:
void enabledChanged(int port, bool value);
};
#endif // LINKPORTS_H
linkports.cpp [определение функции]
void LinkPorts::enabledChangeEmit(int port, bool value) {
emit enabledChanged();
}
linkcontrol.h [определение места]
private slots:
void updateEnabled(int port, bool value);
linkcontrol.cpp [подключение и определение слота]
LinkControl::LinkControl(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::LinkControl)
{
ui->setupUi(this);
connect(hardware, SIGNAL(enabledChanged(int, bool)), this, SLOT(updateEnabled(int, bool)));
portSliders[16] = {ui->slider1, ui->slider2, ui->slider3, ui->slider4, ui->slider5, ui->slider6, ui->slider7, ui->slider8, ui->slider9, ui->slider10, ui->slider11, ui->slider12, ui->slider13, ui->slider14, ui->slider15, ui->slider16, };
}
void LinkControl::updateEnabled(int port, bool value)
{
this->portSliders[port]->setEnabled(value);
}
И я получаю ошибку:
/home/narendran/QtWorkspace/LinkControl/linkcontrol.cpp:17: error: no matching function for call to 'LinkControl::connect(LinkPorts*&, const char*, LinkControl* const, const char*)'
connect(hardware, SIGNAL(enabledChanged(int, bool)), this, SLOT(updateEnabled(int, bool)));
Некоторая помощь будет очень признательна, спасибо.
Кстати, я определяю оборудование как объект LinkPorts, используя:
LinkPorts *hardware = new LinkPorts();
в файле глобальных объектов.