Closed LUAN-Z closed 8 months ago
你的编译环境是什么,我现在用的是Qt6.5+vs2019。
使用下面命令从生成sln并用vs2019打开,是没有问题的。
cmake .. -G "Visual Studio 16 2019" -DCMAKE_PREFIX_PATH=D:\Qt\6.5.3\msvc2019_64
我使用的是V5.14.2,和你用的V6.5应该是有一些差异。
第二个问题可能是由第一个问题引起的。 比较5.x和6.x的API文档,nativeEvent的声明是不同的。 修改函数签名,据我所知,它会起作用。 在 5.x 中: virtual bool nativeEvent(const QByteArray &eventType, void message, long result) 在 6.x 中: virtual bool nativeEvent(const QByteArray &eventType, void message, qintptr result)
我切换到Qt6.7.0使用cmake .. -G "Visual Studio 17 2022" -DCMAKE_PREFIX_PATH=D:\Qt\6.7.0\msvc2019_64
命名
令生成sln,用VS编译成功了,但Qt5编译不成功的原因还是没搞清楚。
看一下我上一条回复,问题应该就是Qt5跟Qt6的API不一样。现在的代码还没兼容Qt5,需要自己修改一下才能编译通过。
文件qt-frameless-window-sample\submodules\qt-frameless-window\framelesswindow.cpp编译时报错:
类 "QWindow" 没有成员 "startSystemMove","startSystemMove": 不是 "QWindow" 的成员
“bool QWidget::nativeEvent(const QByteArray &,void ,long )”: 无法将参数 3 从“qintptr ”转换为“long ” “h::FramelessWindow::nativeEvent”: 包含重写说明符“override”的方法没有重写任何基类方法