本文记录了Qtservice[2022-08-24版]源码为适配Qt6编译所做的修改记录,仅类unix部分。
Qtservice是QT用于开发后台服务的库,目前支持window和类unix(包含linux)。之前qtservice源码在Qt6下编译不能通过,经过以下修改编译成功。
声明:只修改了类unix部分,window部分未测试。
一、编译环境:
操作系统Deepin20.8,开发工具 Qt6集成环境,GNUGCC 12.2.0。
二、下载
URL:
https://github.com/qtproject/qt-solutions
时间版本:2022年8月24日
三、适配Qt6修改记录
1. qtservice.cpp
原代码:
d_ptr->serviceFlags = 0;
此处0改为ServiceFlag::Default:
d_ptr->serviceFlags = ServiceFlag::Default;
2.示例代码examples/interacive/main.cpp
原代码:
gui->move(QApplication::desktop()->availableGeometry().topLeft());
Qt6中QApplication类的成员函数desktop()被弃用,被改为以下代码:
gui->move(QApplication::activeWindow()->screen()->availableGeometry().topLeft());
并添加头文件:
#include <QScreen>
3.示例代码examples/server/main.cpp
原代码:
QStringList tokens = QString(socket->readLine()).split(QRegExp("[ \r\n][ \r\n]*"));
Qt6中QRegExp类不推荐使用,更换为QRegularExpression类,代码如下:
static QRegularExpression re("[ \r\n][ \r\n]*");
QStringList tokens = QString(socket->readLine()).split(re);