【写在前面】 最近在写信息提交 ( 表单 ) 的窗口时发现一个奇怪的 BUG: 其代码如下: import QtQuick 2.15 import QtQuick.Controls 2.15 import QtQuick.Window 2.15 Window { width: 640 height: 480 visible: true title: qsTr(
【写在前面】 CMake 的生成器表达式用于在构建系统级别上进行条件判断和逻辑运算,它们通常用在目标属性和生成器表达式上下文中。这些表达式允许你根据不同的平台、配置或编译器来定制构建过程。 本文引用的文档链接: cmake 生成器表达式 (7) — CMake 3.26.4 Documentation 【正文开始】 本篇文章将介绍《条件表达式》和《逻辑运算符》。 条件表达式: 生成器表达式的
CMake 的全局属性是指在 CMake 配置过程中,对整个项目范围生效的设置。 这些属性不同于目标 ( Target ) 属性或目录 ( Directory ) 属性,后者仅对特定的目标或目录生效。
CMake 可以通过属性来存储信息。它就像是一个变量,但它被附加到一些其他的实体上,像是一个目录或者是一个目标。例如一个全局的属性可以是一个有用的非缓存的全局变量。 在 CMake 的众多属性中,目标属性 ( Target Properties ) 扮演着尤为重要的角色,它们直接关联到最终生成的可执行文件、库文件等构建产物。 更直观一点,如果把目标类比为 类 ( Class ),那么目标属性则类似 类成员 ( Class Member )。
【写在前面】 在现代应用程序中,星级评分是一个常见的用户界面元素,它允许用户对产品、服务或内容进行评价。 想必大家在用各种带有评分的软件中看到过这个组件: 本文将指导你如何使用 Qml 创建一个简单而美观的星级评分组件,并且支持高度自定义。 【正文开始】 先来看看效果图: 现在开始讲解思路: 首先,我们需要考虑半星的情况,因此可以分为三个部分: 1、红色部分:满填充星星【fillDel
【写在前面】 最近看到一个非常有趣的动画效果:水波进度动画。 学习了一下实现思路,觉得很有意思。 不过原版是 HTML + CSS,我这里用的是 Qml,有一些小技巧,分享给大家~ 【正文开始】 老样子,先来看看效果图: 最基础的无非就是四个部分: 1、圆形水缸 2、水波 3、百分比数字 4、进度条 水波效果最重点的就是水波,其实这个水波就是个障眼法罢了,画张图你们就明白了。 它就是一个圆角正
【写在前面】 经常接触前端的朋友应该经常见到下面的控件: 在前端中一般称它为 Notification 或 Message,但本质是一种东西,即:悬浮弹出式的消息提醒框。 这种组件一般具有以下特点: 1、全局/局部显示:它不依赖于具体的页面元素,可以在整个页面的任意位置显示。 2、自动消失:默认情况下,消息会在一定时间后自动消失,也可以设置为不自动消失。 3、多种类型:支持多种类型的消息,如成
【写在前面】 最近在刷掘金的时候看到一篇关于瀑布流布局的文章,然鹅他们的实现都是前端的那套,就想着 Qml 有没有类似实现。 结果百度了一圈也没有( T_T Qml 凉了凉了 ),于是,我按照自己理解,简单实现了一个 Qml 版的瀑布流布局。 关于瀑布流: 瀑布流布局(Waterfall Layout),也被称为瀑布式布局或多栏自适应布局,是一种网页布局技术,它允许内容以多列的形式显示,类似于
我们在 Qml 中经常会遇到这样的情况: 有某个 Item ( 这里称为 Parent ),需要它在鼠标 `Enter` 时显示,鼠标 `Exit` 时隐藏。 这时候我们会用一个 MouseArea,然后处理 `onEntered / onExited`。 但是,有一个巨大的坑: 如果这个 Item 里嵌入了其他 Item ( 这里称为 `Child` ) 并且处理自己的 MouseArea,则会导致 `Parent Item` 的 MouseArea 失效 ( 即不能接收到相应的事件 )。
最近在 Qml 中使用 MouseArea 时发现了一个奇怪的现象:位于 MouseArea 上的 ListView 在处理了滚轮事件的情况下进行滚轮,下面的 MouseArea 却在某些情况下接收到了这个事件。按照直觉,ListView 明明有内部的滚轮事件处理
在 Qt 中,对于一个键盘事件QKeyEvent ,通常包含三种键值: key:Qt 键值,例如 Qt::Key_Escape。 nativeVirtualKey:本机虚拟键值,例如 VK_ESCAPE ( windows )。 nativeScanCode:本机扫描码。
在很多应用中,很可能会需要这样的功能: 我们点击窗口上的 × ,并不是要真的退出应用,而是要它们以小托盘的形式继续运行。 情况 1:如果 × 是自定义的按钮,我们可以轻易控制它的行为,hide ->system tray。 情况 2:如果 × 是窗口自带的按钮,那么对于QWidgets 来说,我们只需要重写其 closeEvent 方法,然后实现想要的动作。然鹅,对...
在QML中,Image是一个常用的控件,用于在界面中显示图片。然而,当程序中大量使用Image控件时,我发现内存占用异常高。通过实验,每增加一张大尺寸图片,内存占用就会显著增加。 为了解决这个问题,我在Qt的文档中找到了解决方案:使用sourceSize属性。这个属性可以限制加载到内存中图像的实际大小,从而减少内存占用。我通过设置sourceSize为窗口的尺寸,成功将内存占用从80MB降低到了20MB。
在 Qml 中,很多时候我们需要动态创建一些 Qml 对象,通常是:createComponent + createObject 或 createQmlObject。 然而,最近工作中却出现了一个相当难以察觉的问题:动态创建的窗口在某些时刻会被莫名其妙的删除,我花了很多时间才定位到关键位置。 其根本原因在于:未给动态创建的对象分配 parent ( 即:没有任何对象持有其引用 ),结果就是,当 Qml 引擎运行垃圾回收时,这些对象会被错误清除掉。
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号