代码编织梦想

qt qwidget 独立窗口抗锯齿圆角的一个实现方案(支持子控件)_qt 按钮圆角有锯齿-爱代码爱编程

QWidget独立窗口抗锯齿圆角窗口的一个实现方案 由于 QWidget::setMask 接口设置圆角不支持抗锯齿,所以通常会使用透明窗口加圆角背景,但圆角背景不能满足对子控件的裁剪,子控件与圆角区域重叠的部分还是能显示

windows平台qt无边款窗口技术细节_qwidget winid 全屏 鼠标事件无效-爱代码爱编程

Windows平台Qt无边款窗口技术细节 (本文只讨论带有窗口特效的无边框实现,通过自绘阴影、自定义鼠标事件的方式不具备参考价值) 无论是哪个GUI框架,在Windows平台实现无边框窗口,都是一个绕不过去的话题,毕竟标

一个qt鼠标透传场景与事件过滤器的用法-爱代码爱编程

一个Qt鼠标透传场景与事件过滤器的用法 最近工作中遇到一个开发场景,将一个QWidget控件(称为控件A)放入QScrollArea,该控件A重写了QWidget::wheelEvent,根据鼠标滚轮事件缩放内部的绘制视图

关于qt高频率信号槽合并的误解和方案_kumanpc的博客-爱代码爱编程

使用Qt信号槽的时候,总会有这样的需求:线程频繁触发信号,希望槽在执行时,仅处理一次。这样的场景确实普遍存在,比如线程不断产生不同的数据,而槽因为某些原因(槽比较耗时或者正在处理其他事情),仅希望在“最后一次”信号触发时执行实际的业务逻辑(举例与实际技术没有太大关系,只是业务上的需求)。 这样似乎需要在槽执行时先判断是不是有多次触发信号,然而Qt没有提供

qt信号槽与事件循环的关系_eiilpux17的博客-爱代码爱编程

Qt信号槽与事件循环的关系 关于信号槽与事件循环,相关的文章非常多了,本文不做过多介绍。本文主要是通过简单的几个例子,尝试解释信号槽与事件循环的关系,帮助进一步理解。 一、信号槽 类中声明的信号,实际也是声明一个函数,其实现由moc机制自动生成在moc文件里,信号触发意味着函数调用: // widget.h , Widget类 signals:

Qt使用私有接口绘制窗口阴影-爱代码爱编程

Qt使用私有接口绘制窗口阴影 该方法仅适用于矩形区域,异形区域可以参考 大多数软件UI设计都喜欢给控件增加阴影来制造分层效果,而比较好的阴影通常需要算法生成。在Qt中主要有两个方法来实现: QGraphicsDropShadowEffect 该方法在指定QWidget下方生成阴影效果,可以设置颜色、偏移、阴影半径。该方法原理是先截取指定QWidge

Qt列表下方增加弹出加载数据提示效果-爱代码爱编程

使用QScrollEvent在Qt列表下方弹出提示文字 需求 最近有个需求是在列表下方增加一个“加载更多数据”的提示,当后台在请求数据的时候提示用户。在我的这篇 QScroller的QScrollerProperties参数研究 文章中,研究了一下鼠标手势的列表滚动参数,里面提到了过量滚动的一些设置,可以借用这个效果来实现。 以下是最终效果,为了方便

Qt Bug: MacOS平台非激活窗口右键菜单导致输入框光标不显示-爱代码爱编程

MacOS平台上右键菜单导致输入框光标不显示 问题很好复现,在桌面点击,使窗口处于非激活状态,此时输入框光标消失。直接在窗口上右键,弹出右键菜单后选择一个,菜单关闭,可以看到输入框没有了闪烁的光标,以下是Qt5.9.9测试结果: 解决办法 没有具体研究是什么导致了该问题,通过日志输出可以发现,光标消失后,QApplication::activeW

QScroller的QScrollerProperties参数研究-爱代码爱编程

使用QScroller拖拽效果的参数研究 QScrollerProperties通过丰富的参数实现拖拽的很多动画细节,本文以鼠标手势为测试,做个简单整理。 以下是目前的所有属性: QScrollerProperties::MousePressEventDelay 设置一个鼠标事件延迟时间,单位s。当鼠标按下后,开始手势识别,如果在该时间内开始了

Win32屏幕坐标转换Qt坐标-爱代码爱编程

Win32消息的屏幕坐标如何转换Qt坐标 偶尔一些情况,需要将Win32 API获取到的鼠标位置转换到Qt的窗口坐标中,常见的方法是除以当前窗口的缩放(QPaintDevice::devicePixelRatioF或者其他),这样做是不准确的,只适合单屏幕。 实际原始坐标是基于整个桌面系统的坐标,而Qt的坐标则是基于屏幕与缩放后的坐标。可能鼠标位置确实

QTableView使用QTextDocument绘制Html的缩略支持-爱代码爱编程

QTableView使用QTextDocument绘制单行Html的文本缩略支持 如果要在QTableView的单元格支持Html,通常做法是使用QTextDocument绘制,由于带有标签的Html文本总是长于实际显示的文本,所以无法直接使用QFontMetrics::elidedText。如果对纯文本进行缩略,又不好判断对应Html是哪部分被替换了。

Qt借助隐藏控件和QSS绘制重复元素-爱代码爱编程

借助隐藏控件使用QStyle绘制重复元素 在之前两篇文章,QComboBox文字居中 和 使用QSS定制SwitchButton 中,我借助不同的 QStyleOption 来定制复杂控件,目的是为了将 QSS 这一 UI 美化机制应用到自绘控件中,尽可能减少在代码中使用接口和变量。 本文对此技巧,再提出一种应用,使用 QSS 应用到隐藏控件,借助该控

Qt实现一个支持QSS的Switch Button(开关按钮)-爱代码爱编程

目录 Qt实现一个支持QSS的Switch Button(开关按钮)问题解决思路实现方式其他不同的 Switch Button总结 Qt实现一个支持QSS的Switch Button(开关按钮) 本文会比较长,目的是为了提供一种实现自定义复杂控件的方式,对于使用 QSS 应用样式的项目可能会有帮助。 实现的过程会相对比较复杂和难理解,仅作为

QComboBox文字居中的一种解决办法-爱代码爱编程

QComboBox文字居中的一种解决办法 本文会尽可能解释一些内容,所以会显得有点长。 关于QComboBox文字的居中,网上提供的主流方案是,通过 QComboBox::setEditable 设置为可编辑状态,再获取 QComboBox::lineEdit 设置为只读并居中文字。 该方案的缺点在于改变了不可编辑状态下QComboBox的交互行为,

QML虚拟键盘添加自定义样式-爱代码爱编程

QML自定义虚拟键盘样式  本文测试源码项目:Git仓库  Qt Quick自带有个Qt Virtual Keyboard,方便用户集成虚拟键盘,其样式有两种,default和retro。Qt文档里说明可以通过 QT_VIRTUALKEYBOARD_STYLE 环境变量来设置样式。 文档中也有自定义样式的方法(点击这里),本文也是针对文档里的方法做个操

用qt实现一个动态缩放的滚动条-爱代码爱编程

用Qt实现一个动态缩放的滚动条1. QScrollArea与QScrollBar的关系2. 理解QWidget::sizeHint()3. 布局变化通知部分代码: 用Qt实现一个动态缩放的

qt中qlabel显示动态图的平滑缩放_kumanpc的博客-爱代码爱编程_qlabel 图片缩放

解决Qt中QLabel显示动态图的平滑缩放 Qt中显示动态图常用QLabel,创建QMovie对象,并通过QLabel::setMovie显示。 需要将动态图根据容器缩放时,设置QLabel::setScaledCont