我在头文件中创建了一个类。
班级宣言:
class myTimer : public QObject
{
Q_OBJECT
~snipped~
我有一个自定义插槽:
private slots:
void mySlot();
和自定义信号:
signals:
QString mySignal();
广告位只会发出mySignal
,然后会返回QString
。
我将QPushButton
与mySlot
:
connect(ui->startButton, SIGNAL(clicked()),
timer, SLOT(mySlot()));
和mySignal
到LCD编号:
connect(timer, SIGNAL(mySignal()),
ui->lcdNumber, SLOT(display(QString)));
这里timer
是我声明的类的对象。在两个连接语句中,我得到错误unable to convert parameter to const QObject*
指向对象'计时器'。
我不知道为什么这个错误正在发生,即使我已经从QObject adn添加了Q_OBJECT宏。
答案 0 :(得分:4)
connect函数的第一个参数应该是const QObject*
。无法将myTimer
转换为const QObject *
,因为其中一个是对象而另一个是指针。您可能需要&timer
。
答案 1 :(得分:1)
信号不能返回任何值(返回值应为无效)
如果要通过信号传递值,则应添加参数:
signals:
void mySignal(QString);
然后连接为:
connect(timer, SIGNAL(mySignal(QString)),
ui->lcdNumber, SLOT(display(QString)));