连接qml信号和槽函数要注意的点
- connect 函数中的信号和槽函数不应该带形式参数
QObject::connect(setButton, SIGNAL(qmlbuttonclicked(QVariant)), DB::GetInstance(), SLOT(ConstructAndSetCommmand(QVariant))) //true
QObject::connect(setButton, SIGNAL(qmlbuttonclicked(QVariant temp1)), DB::GetInstance(), SLOT(ConstructAndSetCommmand(QVariant temp2))) //false
- 在 qml 中声明的信号,参数类型应该用 var
signal qmlbuttonclicked(var anObject)
- c++ 槽函数接受的参数类型应该为 Qvariant ,且应该声明到到 slots中
public slots:
static void ConstructAndSetCommmand(QVariant);
- 槽函数做相对应的操作,要弄清楚QVariant 中存的是什么类型,在相对应取出来操作
使用 Qvariant.value<T>() 的方法
QVariantList module_list=module_model.value<QVariantList>();
- 其余就是检查函数名和信号名和objectname是否写错了