繁体   English   中英

信号和插槽帮助QT

[英]Signals and Slots help QT

我有一个带有函数的Ui类,每次我从类发出信号时都想调用该函数,比如说test。 在ui函数中,我需要连接信号和插槽,但是我尝试从QT文档获取代码,但没有运气

信号声明

signals:

void paint(int x, int y, int id);

信号发射

emit paint(x, y, id)

连接( m_test是一个类对象)

connect(&m_test,SIGNAL(paint(int,int,int)), this, SLOT(uiFunction(int,int,int)));

得到这个错误

错误:C2664:'QMetaObject :: Connection QObject :: connect(const QObject *,const char *,const QObject *,const char *,Qt :: ConnectionType)':无法将参数1从'uiFunction *'转换为'const QObject *'

但我遵循了这个QT docs示例(计数器是类)

Counter a, b;
     QObject::connect(&a, SIGNAL(valueChanged(int)),
                      &b, SLOT(setValue(int)));

有任何想法吗?

您需要Ui类从QObject继承,然后在该类的声明之后添加QOBJECT宏。 例如

class Ui : public QObject
{
    QOBJECT

signals:
    void paint(int x, int y, int id);

private slots:
    void UiFunction(int x, int y, int id);
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM