Qt优秀开源项目之二十一:遇见QSkinny,一个轻量级Qt UI库

这篇具有很好参考价值的文章主要介绍了Qt优秀开源项目之二十一:遇见QSkinny,一个轻量级Qt UI库。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一.QSkinny简介

二.工作原理

三.编译


一.QSkinny简介

QSkinny库基于Qt Graphic View和Qt/Quick中少量的核心类。它提供了一组轻量级控件,可以在C++或QML中使用这些控件。QSkinny默认是启用硬件加速的,非常适合嵌入式设备,目前已经应用于大量汽车GUI的代码实现中。正如预期的那样,它有良好的启动性能和低内存占用率。
github地址:https://github.com/uwerat/qskinny
QSkinny能在支持Qt/Quick的所有平台上运行,但目前只在Linux上得到了充分的测试。理论上支持所有Qt>=5.15的版本,推荐使用下面这三个版本:
●Qt 5.15
●最新的LTS(long term supported)版本 ,当前是 Qt 6.5.x 
●最新的Qt版本,当前是 Qt 6.6.x
先上几张图看看:
1.汽车中控仪表盘,已用于大型汽车项目中:

qml开源项目,Qt优秀开源项目,qt,开源,ui
2.进度条

qml开源项目,Qt优秀开源项目,qt,开源,ui

二.工作原理

用QSkinny写一个“Hello World”程序

int main(int argc, char** argv)
{
    QGuiApplication app(argc, argv);
    QskWindow window;
    window.resize(200, 200);
    auto box = new QskLinearBox(Qt::Vertical);
    auto button = new QskPushButton("push me", box);
    auto label = new QskTextLabel("label", box);
    window.addItem(box);
    window.show();
    return app.exec();
}

用QSkinny API写代码的方式是不是很熟悉?没错,和用QtWidgets差不多,因为它们有类似的控件,比如 text labels、push buttons, layouts、dialogs等等。
下图揭示了QSkinny、QML和QtWidgets直接的关系:
qml开源项目,Qt优秀开源项目,qt,开源,ui
上图包含的层次结构如下:
●QSkinny: C++ UI控件 
●QML engine: 解析UI文件的declarative / JavaScript引擎 
●QtQuick: UI控件的基础框架 (包含了诸如 x/y坐标和焦点的处理)  
●Qt scene graph: 利用硬件加速的绘图单元
●OpenGL: 利用硬件加速的绘图API 
●QtWidgets: 为桌面用户设计的C++ UI控件 
●Qt raster paint engine: software (非硬件加速) 绘图引擎
●QPainter API: 可以绘制图形、图像和文字的API
下面再看一个换肤的例子:将所有按钮的文字设置为蓝色,背景设置为绿色,padding为10像素

setGradient( QskPushButton::Panel, Qt::green );
setColor( QskPushButton::Text, Qt::blue );
setMargins( QskPushButton::Panel | QskAspect::Padding, 10 );

只需把颜色替换为不同的值就能触发重绘,换肤就是如此简单。

qml开源项目,Qt优秀开源项目,qt,开源,ui

三.编译

我的编译环境
Window 10
Qt 6.6.1 mingw_64
用Qt 6.6.1自带的Qt Creator打开源码中的CMakeLists.txt文件(...\qskinny-master\CMakeLists.txt),几分钟就能编译好,编译无报错,编译结果如下图所示:
qml开源项目,Qt优秀开源项目,qt,开源,ui
图中箭头所指的两个目录里是Demo,比较坑的是编译出的dll分散在各个目录,需要拷贝过去,如下图所示:

qml开源项目,Qt优秀开源项目,qt,开源,ui

参考链接:Meet QSkinny, a lightweight Qt UI library   
原文链接:Qt优秀开源项目之二十一:遇见QSkinny,一个轻量级Qt UI库-CSDN博客文章来源地址https://www.toymoban.com/news/detail-818903.html

到了这里,关于Qt优秀开源项目之二十一:遇见QSkinny,一个轻量级Qt UI库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 140款Android开源优秀项目源码

    BeautifulRefreshLayout-漂亮的美食下拉刷新 GitHub - android-cjj/BeautifulRefreshLayout at BeautifulRefreshForFood Material Design-动画风格的选项卡tab切换功能 GitHub - neokree/MaterialTabs: Custom Tabs with Material Design effects TwinklingRefreshLayout-支持下拉刷新和上拉加载的RefreshLayout,自带越界回弹效果 GitHub - lco

    2024年02月08日
    浏览(29)
  • Github、Gitee优秀的开源项目

    收集 Github 、 Gitee 优秀的开源项目,并进行归类整理。项目地址 编程语言项目 SprinBoot 项目 源码分析项目 前后端分离项目 Vue2 项目 Vue3 项目 微服务项目 Api 网关项目 中间件项目 数据操作项目 测试运维监控项目 接口文档管理项目 知识管理项目 聊天项目 工具项目 集合项目

    2023年04月14日
    浏览(41)
  • Docker学习(二十一)构建 java 项目基础镜像

    JDK各版本官网下载地址: https://www.oracle.com/java/technologies/downloads/archive/#JavaSE 这里我们以 JDK 8u351 为例,点击 Java SE (8U211 and later) 。 点击下载 jdk-8u351-linux-x64.tar.gz 。 勾选接受协议,点击下载。(这里会需要登录一下,没有账号可以注册一个,Oracle账号以后也会用到) 下载后

    2024年02月07日
    浏览(28)
  • Github、Gitee优秀的开源项目分享

    先赞后看,养成习惯!!!❤️ ❤️ ❤️ 资源收集不易,如果喜欢可以关注我哦! ​如果本篇内容对你有所启发,欢迎访问我的个人博客了解更多内容:链接地址 ​ javacore  -  Java  核心技术的经验总结。 在线文档 symphony  - 一款用  Java  实现的现代化 社区(论坛/问答

    2024年02月04日
    浏览(31)
  • 【QT系列教程】之二创建项目和helloworld案例

    优良的跨平台特性: Qt支持下列操作系统: Microsoft Windows 95/98, Microsoft Windows NT, Linux, Solaris, SunOS, HP-UX, Digital UNIX (OSF/1, Tru64), Irix, FreeBSD, BSD/OS, SCO, AIX, OS390,QNX 等等。 面向对象 Qt 的良好封装机制使得 Qt 的模块化程度非常高,可重用性较好,对于用户开发来说

    2024年02月04日
    浏览(32)
  • AIGC领域优秀的资源汇总(应用、论文、开源项目)

    AIGC领域介绍,及一些比较优秀的应用,和论文,开源项目汇总。 一、AIGC概念 ​ AIGC,全名“AI generated content”,又称生成式AI,意为人工智能生成内容。例如AI文本续写,文字转图像的AI图、AI主持人等,都属于AIGC的应用。 ​ AIGC也被认为是继PGC(Professionally Generated Content,专

    2024年02月11日
    浏览(29)
  • 整理5个优秀的微信小程序开源项目

    ​ GitHub:  https://github.com/woniudiancang/bee Bee是一个餐饮点餐商城微信小程序,是针对餐饮行业推出的一套完整的餐饮解决方案,实现了用户在线点餐下单、外卖、叫号排队、支付、配送等功能,完美的使餐饮行业更高效便捷! GitHub:  https://github.com/lsqy/taro-music taro-music是基于t

    2024年02月06日
    浏览(33)
  • 深入理解SSO原理,项目实践使用一个优秀开源单点登录项目(附源码)

    深入理解SSO原理,项目实践使用一个优秀开源单点登录项目(附源码)。 一、简介 单点登录(Single Sign On),简称为 SSO。 它的解释是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 ❝ 所谓一次登录,处处登录。同样一处退出,处处退出。 ❞

    2024年02月11日
    浏览(30)
  • 不怕没项目做!github上的STM32 优秀开源项目和初学者项目

    TinyGo - Go语言编译器,适用于微控制器、WebAssembly、命令行工具,基于LLVM。 语言:Go 星标数:14,267+ 描述:TinyGo带来了Go语言在嵌入式系统的实现,使得STM32等微控制器编程更加多样化。 Flipper Zero Firmware - Flipper Zero的固件源码。 语言:C 星标数:10,699+ 描述:为Flipper Zero多功能

    2024年03月20日
    浏览(81)
  • 如何入门.NET Core ? 推荐这10个优秀的开源项目!

    .NET 5马上就要发布了,还不知道这些.NET Core开源项目? 只推荐干货!当然这些开源项目都是个人或组织开发的。 1.Ant Design Blazor .NET进行客户端Web开发又一利器。 微软官方认可,微软Build2020开发者大会Blazor介绍中,提及Ant Design Pro。一图胜千言,得到微软认可是对作者最大的

    2024年02月08日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包