在自定义库中使用QSerialPort出现问题

我正在尝试使用Lua C APILuaBridge创建一个Lua包,并且我需要通过串行端口发送数据,因此需要使用Qt的QSerialPort

绑定很好用,也就是说,我可以在我的脚本中使用我在Lua中注册的类。但是,每次使用QSerialPort :: write时,Qt都会打印以下警告:

QObject :: startTimer:计时器只能与使用QThread启动的线程一起使用

我没有声明QCoreApplication,也不知道应该在哪里声明它,因为库没有main()函数。

我最接近入口点的东西是

int luaopen_my_io_lib(lua_State * L);

它将我的类注册到Lua中。

QSerialPort被用作我注册类的成员,并且没有父QObject构造。

我该如何解决这个问题?

[EDIT]这是触发警告的代码:

bool SerialIO :: write(std :: string data){
    m_port.write(data.c_str());
    return  m_port.waitForBytesWritten(100);
}

其中m_port是QSerialPort。

我认为我应该能够通过启动新的QThread来解决它,但是这对我想要实现的功能来说有点过度设计...

点赞