摘要: CMake 属性之目标属性 CMake 可以通过属性来存储信息。它就像是一个变量,但它被附加到一些其他的实体上,像是一个目录或者是一个目标。例如一个全局的属性可以是一个有用的非缓存的全局变量。 在 CMake 的众多属性中,目标属性 ( Target Properties ) 扮演着尤为重要的角色,它们直接关联到最终生成的可执行文件、库文件等构建产物。 更直观一点,如果把目标类比为 类 ( Class ),那么目标属性则类似 类成员 ( Class Member )。 阅读全文
posted @ 2024-10-08 20:16 梦起丶 阅读(460) 评论(0) 推荐(2)
摘要: Qml 实现星级评分组件 在现代应用程序中,星级评分是一个常见的用户界面元素,它允许用户对产品、服务或内容进行评价。 想必大家在用各种带有评分的软件中看到过这个组件: 本文将指导你如何使用 Qml 创建一个简单而美观的星级评分组件,并且支持高度自定义。 阅读全文
posted @ 2024-09-15 17:07 梦起丶 阅读(232) 评论(0) 推荐(1)
摘要: Qml 实现水波进度动画条 最近看到一个非常有趣的动画效果:**水波进度动画。** 学习了一下实现思路,觉得很有意思。 不过原版是 `HTML + CSS`,我这里用的是 `Qml`,有一些小技巧,分享给大家~ 阅读全文
posted @ 2024-09-13 20:02 梦起丶 阅读(554) 评论(1) 推荐(5)
摘要: Qml 实现仿前端的 Notification (悬浮出现页面上的通知消息) 在前端中一般称它为 Notification 或 Message,但本质是一种东西,即:悬浮弹出式的消息提醒框。 这种组件一般具有以下特点: 1、全局/局部显示:它不依赖于具体的页面元素,可以在整个页面的任意位置显示。 2、自动消失:默认情况下,消息会在一定时间后自动消失,也可以设置为不自动消失。 3、多种类型:支持多种类型的消息,如成功(Success)、警告(Warning)、错误(Error)和 消息(Message)等。 4、可配置:可以自定义消息的显示位置、持续时间、内容等。 然鹅 Qml 中并未提供类似的组件,因此我便仿照前端实现了出来,并且更加简单易用。 阅读全文
posted @ 2024-09-12 20:27 梦起丶 阅读(925) 评论(2) 推荐(1)
摘要: Qt 中实现异步散列器 在很多工作中,我们需要计算数据或者文件的散列值,例如登录或下载文件。 而在 Qt 中,负责这项工作的类为 `QCryptographicHash`。 虽然 `QCryptographicHash `很优秀,但它最大的问题在于其散列值的计算是同步的( 即阻塞 ),对小数据来说并没什么影响,但对大数据来说则意味明显卡顿。 因此,我将 `QCryptographicHash` 进行简单封装,扩展了实用性的同时并将计算改为异步,还增加了进度通知和结束通知。 阅读全文
posted @ 2024-09-11 10:12 梦起丶 阅读(358) 评论(0) 推荐(4)
摘要: Qml 实现瀑布流布局 最近在刷掘金的时候看到一篇关于瀑布流布局的文章,然鹅他们的实现都是前端的那套,就想着 Qml 有没有类似实现。 结果百度了一圈也没有( T_T Qml 凉了凉了 ),于是,我按照自己理解,简单实现了一个 Qml 版的瀑布流布局。 阅读全文
posted @ 2024-09-10 18:49 梦起丶 阅读(519) 评论(0) 推荐(2)
摘要: Qml 中的那些坑(五)---MouseArea 上的 ListView 滚轮事件穿透 最近在 Qml 中使用 `MouseArea` 时发现了一个奇怪的现象: 位于 `MouseArea` 上的 `ListView` 在处理了滚轮事件的情况下进行滚轮,下面的 `MouseArea` 却在某些情况下接收到了这个事件。 按照直觉,`ListView` 明明有内部的滚轮事件处理,应该阻止事件向下传递才对,然而此时的情况却出乎意料,因此在此记录并附上解决方案。 阅读全文
posted @ 2024-04-22 18:15 梦起丶 阅读(75) 评论(0) 推荐(0)
摘要: Qml 中的那些坑(四)---MouseArea 的 Click / Hover 事件穿透 我们在 Qml 中经常会遇到这样的情况: 有某个 Item ( 这里称为 Parent ),需要它在鼠标 `Enter` 时显示,鼠标 `Exit` 时隐藏。 这时候我们会用一个 MouseArea,然后处理 `onEntered / onExited`。 但是,有一个巨大的坑: 如果这个 Item 里嵌入了其他 Item ( 这里称为 `Child` ) 并且处理自己的 MouseArea,则会导致 `Parent Item` 的 MouseArea 失效 ( 即不能接收到相应的事件 )。 阅读全文
posted @ 2024-04-20 22:42 梦起丶 阅读(272) 评论(0) 推荐(0)
摘要: Qml 中的那些坑(三)---KeyEvent 的 key / virtualKey / scanCode 在 Qt 中,对于一个键盘事件QKeyEvent ,通常包含三种键值: key:Qt 键值,例如 Qt::Key_Escape。 nativeVirtualKey:本机虚拟键值,例如 VK_ESCAPE ( windows )。 nativeScanCode:本机扫描码。 阅读全文
posted @ 2024-04-19 11:12 梦起丶 阅读(69) 评论(0) 推荐(0)
摘要: Qml 中的那些坑(二)---QWindow 的 closeEvent 在很多应用中,很可能会需要这样的功能: 我们点击窗口上的 × (关闭),并不是要真的退出应用,而是要它们以小托盘的形式继续运行。 情况 1:如果 × 是自定义的按钮,我们可以轻易控制它的行为,hide -> system tray。 情况 2:如果 × 是窗口自带的按钮,那么对于 QWidgets 来说,我们只需要重写其 closeEvent方法,然后实现想要的动作。然鹅,对于 Qml 的 Window ( 即 QQuickWindow ),会发现一些问题。 阅读全文
posted @ 2024-04-18 20:36 梦起丶 阅读(120) 评论(0) 推荐(0)