[英]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.