作者归档:myCode

Qt Quick Windows 下实现无边框窗口阴影效果

Qt Quick 中实现一个无边框窗口阴影效果的中心思想是将 Window 容器背景设置为透明的,在 Windows 容器中添加一个填满窗口的容器(如 Page、Rectangle 等),然后将这个容器设置一些边距,再给这个容器附加一个阴影效果,实现的效果如下:

继续阅读

Qt QML qtquickcontrols2.conf 使用系统未安装的自定义字体

现在很多视觉设计最终给出的字体可能并不是所有系统都安装过的,所以项目中可能需要单独把字体文件打包进去在程序运行的时候加载。Qt QML 有多种方式加载一个自定义字体,本文将介绍所有我知道的方式,大家根据自己的需要选择使用任意一种即可。

继续阅读

2020 新的开始

2019 年是“进展缓慢”的一年,也是我人生中具有重要意义的一年,更是在经历了诸多波折后回到人生正常状态的一年。虽然还有很多遗憾(包括家庭、感情、工作),但我还是要感谢这一年所有遇到过的人和经历过的事情,这些都无形中让我慢慢走向一个三十而立的人。

我将原有的个人博客域名指向了这个站点,这也意味着未来只会维护这一个博客,这里会有我成长所有相关的内容。按照惯例,总结过去一年的得失,对未来做一个展望。人总是要前进,在前进的道路上才能发现生活的意义。

继续阅读

递归修改当前目录 .cpp、.h、.md 文件为 UTF8 或 UTF8-BOM 格式

有些代码目录下的文件格式不同,会导致一些编译错误或者中文出现错误等等问题,下面脚本就是解决这个问题而生的。使用 Autoit3 编译脚本后放到你要转换的目录中,运行脚本会转换所有 .cpp、.h、.md 文件为 UTF8 格式,如果你希望修改成 UTF8-BOM 格式,可以将 $FO_UTF8_NOBOM 修改为 $FO_UTF8

继续阅读

NSIS 打包 Electron 项目的注意事项(拖拽、权限、兼容性等)

我自己本人不做 Electron 的开发,但有一位合作伙伴在使用 NSIS 打包 Electron 应用的时候遇到了一些问题,主要问题有以下几个,先记录下来,然后追个击破。

  • 打包后应用在 Windows 7 无法直接运行,需要修改兼容性为 Windows 7 才可以使用
  • 打包后安装或者卸载时应用在运行会安装或者卸载失败,无法替换或删除应用(这个与 Electron 无关但也介绍一下)
  • 打包后应用第一次启动无法使用拖拽功能

继续阅读

Qt Quick QML MouseArea 事件穿透

MouseArea 是 QML 中一个不可见的鼠标操作区域,可响应所有鼠标事件。一般情况下在自定义按钮、自定义需要鼠标交互的区域时使用。有时你只需要它的 hover 通知来做一些事情,而另外的点击等操作需要传递给其下层的控件,这时你就需要忽略其自身的鼠标按下释放等操作让其消息传递到下层了。

继续阅读

Qt Quick QML 中使用自定义字体文件

为了视觉上的统一,有时你需要保持 UI 上的字体与其他端字体一致,但是又不是所有字体所有系统都带有的,所以有时需要加载一个自定义字体来满足需求。本文重点介绍如何加载以及使用自定义字体。

下载并导入字体

下载好你需要的字体文件后通过 Qt Creator 将字体文件导入到资源列表(这样字体会加载到执行程序中,执行程序会比较大):

在导入完字体文件后,需要执行一下 qmake,在项目名称右键->执行qmake

加载字体

首先复制字体路径:

在 main.qml 中增加如下代码(这样全局都可以访问到)

FontLoader {
    id: localFont;
    source: "qrc:/fonts/PingFang.ttf"
}

字体的 ID 自己随便定义,路径就是上图中拷贝出来的路径,保存后字体就加载成功了。

使用字体

在需要使用字体的位置像如下代码一样,使用 localFont.name 属性来获取字体名称:

Text {
    color: "#333333"
    font.family: localFont.name
    font.pixelSize: 14
    textFormat: Text.PlainText
}

这样这个 Text 就使用了我们加载的 PingFang 字体了。