! "Object::connect: no such slot"
A:
槽函数的声明要在slots的修饰下,比如
private slots:
void SLOT_finished(int exitCode, QProcess::ExitStatus exitStatus);
void SLOT_timeoutReconnect();
! 非法的静态成员调用.使用槽函数时,报错指向槽函数
A: `SLOT()`将槽函数用该宏修饰
Qt继承自QObject的类型应该包含有OBJECT宏
! "not signal or slot declaration"
A: 在`slot:`后面放了许多不是`slot`和`signal`的东西
! "Meta Object features not supported for nested classes"
A: 继承自QObject的类型不能写成内嵌类型
用了SIGNAL()``SLOT()就不需要再显式写出函数所属的类了
SIGNAL(函数名())
SLOT(函数名())
两种绝对正确的写法:
connect(&qprocess_instance, &QProcess::errorOccurred, [this](QProcess::ProcessError error){qDebug() << "errorOccurred error code is" << error;});
connect(&qprocess_instance, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(SLOT_finished(int, QProcess::ExitStatus)));
注意
下面错误的写法,形参名code, 和status都不能出现在SIGNAL(函数名(参数类型))里面
SIGNAL(finished(int code, QProcess::ExitStatus status))
- 解决中文乱码的有效方法,背景是文件都是
utf-8编码
在头文件中加入预处理命令#pragma execution_character_set("utf-8")