当前位置: 首页 > news >正文

(也许是全网首发!)Qt6 编译著名Widgets组件 Qt Material Widgets by MSVC / Mingw

目录

前言

项目地址

GCC / Mingw-GCC

But How Do MSVC?


前言

又到了笔者最喜欢的编译时间。笔者留意到全网没有人教授如何使用Qt6编译项目:GitHub - laserpants/qt-material-widgets: :art: Qt widgets-based implementation of the Material Design specification.。特别是发现一部分人都是刻意回避Qt6编译该项目的。

现在笔者给出一份可行的方案来解决这个问题。

项目地址

git clone https://github.com/laserpants/qt-material-widgets.git

现在下来,然后我们开始。

GCC / Mingw-GCC

不管如何,由于这个项目是Linux底下跑的,Windows上的Mingw-GCC编译器也是能用的。而且只需要改这些地方:

  1. 由于Qt6开始StateMachine被独立出去成为一个单独的库。所以,请你在component.pro文件上,整点小小的修改:

写上一行Qt += statemachine。否则会炸这个:

  1. 确保自己选择的套件是GCC家的。

很快我们就遇到了麻烦。结合Qt家的文档,指出:API变更为setContentMargins(0, 0, 0, 0)

当然后面还会再炸一个这个错误!然后是这个:

label->setForegroundRole(QPalette::ForeGround);

改成QPalette::Base

编译通过!成功运行

But How Do MSVC?

但是笔者打算集成进入的项目是MSVC,这很有麻烦。你看,起手:

这个问题我看蒙了,因为这说明我们的QMake到Makefile没有正确映射。笔者后来查阅发现是顶层的.qmake.conf在作怪(隐藏文件的可以自己打开显示文件隐藏,但是源码目录文件已经读取配置,我尝试删除build文件夹和这个.qmake.conf重新生成,但是却仍然固执的忽略那些C++文件,只好作罢)笔者决定采用最次但是最管用的办法,那就是自己构建一个项目添加编译。

仿照我们的qt-material-widget来进行构建项目树:

其中compo装着我们的components源码,examples, fonts, gifs是直接从源码中复制过来的,compo下面是我们自己新建的生成静态库的文件夹,其中这里把QMake文件复制在这里

QT += widgets statemachine
​
TEMPLATE = lib
CONFIG += staticlib
​
CONFIG += c++17
​
# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
​
# 下面这两个直接复制components.pro文件夹的内容
SOURCES += \...
​
HEADERS += \...
​
​
RESOURCES += \resources.qrc
​
# Default rules for deployment.
unix {target.path = $$[QT_INSTALL_PLUGINS]/generic
}
!isEmpty(target.path): INSTALLS += target

现在,我们就可以开始了(当然记得把源码拷贝过来添加)现在我们发现,原先缺失编译的文件现在得到了正确的编译。

这些文件需要被纳入编译生成.o文件。

正常编译结束!

下面就是更改example.pro文件:

QT += core gui widgets statemachine
TEMPLATE = app
CONFIG += c++17
SOURCES = mainwindow.cpp \...
# 生成的lib放到build文件夹正下方
LIBS += compo.lib
# 保证我们可以索引到components头文件
INCLUDEPATH += ../../../compo/
TARGET = examples-exe
# 这里也是一样,保证我们可以被索引到这个静态库
PRE_TARGETDEPS += compo.lib
​
RESOURCES += \examples.qrc
​
FORMS += \...

编译成功,大功造成!


http://www.mrgr.cn/news/62068.html

相关文章:

  • 字符串处理
  • mysql 通过GROUP BY 聚合并且拼接去重另个字段
  • Windows: 如何实现CLIPTokenizer.from_pretrained`本地加载`stable-diffusion-2-1-base`
  • Kafka原理以及分区分配策略剖析
  • 什么是 Pump.fun?
  • 认知战认知作战:三藩之乱中的认知作战分析与策略
  • 设计产品宣传册没参考?推荐一个超多产品宣传册案例的网站
  • OpenJudge:找和为K的两个元素
  • 接口自动化测试平台项目环境搭建
  • MySQL-SQL性能分析
  • 【Stable Diffusion - Ai】小白入门必看(涂鸦、涂鸦重绘、局部重绘和重绘蒙版篇)!真材实料!不卖课!!!
  • 跨平台实现实时通讯
  • 【iOS】SDWebImage
  • 海外联盟营销入门:2024最新指南
  • 玄机-应急响应- Linux入侵排查
  • 单层级IVR和多层级IVR有哪些区别
  • 视频转场素材资源网站分享
  • 网站攻击,XSS攻击的类型
  • C++20 时间转本地时间,时间转字符串以及字符串转时间的方法
  • Android 13 解决 Settings 首页矢量图修改颜色不生效
  • 嵌入式操作系统那么方便好用!为啥还要用单片机?
  • StructRAG简介
  • Open SSH服务配置
  • 20 Docker容器集群网络架构:三、Docker集群部署
  • Java项目:超市管理系统(有源代码)
  • Python小白学习教程从入门到入坑------第二十课 闭包修饰器(语法基础)