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

MacOS平台上右键菜单导致输入框光标不显示问题很好复现,在桌面点击,使窗口处于非激活状态,此时输入框光标消失。直接在窗口上右键,弹出右键菜单后选择一个,菜单关闭,可以看到输入框没有了闪烁的光标,以下是Qt5.9.9测试结果:解决办法没有具体研究是什么导致了该问题,通过日志输出可以发现,光标消失后,QApplication::activeWindow返回空。所以尝试手动调用QApplication::setActiveWindow重设一下。考虑到目前没有其他复现的过程,所以通过全局拦截QEvent
分类: 编程语言 发布时间: 08-09 22:41 阅读次数: 0

Qt列表下方增加弹出加载数据提示效果

使用QScrollEvent在Qt列表下方弹出需求最近有个需求是在列表下方增加一个“加载更多数据”的提示,当后台在请求数据的时候提示用户。在我的这篇 QScroller的QScrollerProperties参数研究 文章中,研究了一下鼠标手势的列表滚动参数,里面提到了过量滚动的一些设置,可以借用这个效果来实现。以下是最终效果,为了方便测试,当滚动条处于最底端,并继续尝试滚动时,弹出该提示:方案研究了一下QScroller的源码,发现是通过向目标窗口发送 QScrollEvent 实现滚动和过量
分类: 编程语言 发布时间: 08-09 22:41 阅读次数: 0

Qt中输入框在Win10上“Win+/“快捷键的一个Bug

Qt中输入框在Win10上"Win+/"的输入法Bug最近项目测试中偶然发现Win10上使用微软输入法,按“Win + /”快捷键会导致UI假死或无法输入中文,Win11没有复现。猜测应该是微软中文输入法的Bug,测试了QQ输入法和日语输入法,都没有问题。问题复现Qt窗口放一个输入框,先输入几个字符,切换到微软输入法,按Win+/快捷键(有的版本可能直接卡死),然后继续输入中文,能看到拼音和候选词窗口,选择候选词没有效果。微软官网上“Win+/”快捷键操作是“Begin IME reconversi
分类: 编程语言 发布时间: 08-09 22:41 阅读次数: 0

Qt程序字体初始化引起的白屏问题

Qt程序启动时字体初始化的白屏问题很早之前发现一个Qt启动时的白屏问题、新建一个Qt项目,在ui文件窗口中仅添加一个按钮,不做布局,编译并运行,窗口显示后会发现有个短暂的白屏过程。如果做个布局,把按钮放进去,则不会出现白屏,但窗口显示会有稍微的延迟。经过调试源码发现,第一次绘制按钮的堆栈里,QPlatformFontDatabase::fallbacksForFamily是一个比较耗时的同步调用,这个过程应该是获取系统里的字体信息。Qt5.15 + win10 + i7七代测试,大概350ms,也跟
分类: 编程语言 发布时间: 08-09 22:41 阅读次数: 0

Qt使用私有接口绘制窗口阴影

Qt使用私有接口绘制窗口阴影大多数软件UI设计都喜欢给控件增加阴影来制造分层效果,而比较好的阴影通常需要算法生成。在Qt中主要有两个方法来实现:QGraphicsDropShadowEffect该方法在指定QWidget下方生成阴影效果,可以设置颜色、偏移、阴影半径。该方法原理是先截取指定QWidget的渲染图像,对图像缩放、填充、模糊,绘制到下面的图层,效果很好。但有个非常大的缺点,由于需要考虑阴影图层的绘制,可能会影响整个窗口的渲染,一些状态不能及时刷新。而且,当阴影区域比较大时,效率非常低。
分类: 编程语言 发布时间: 08-09 22:41 阅读次数: 0

Windows平台Qt无边款窗口技术细节

Windows平台Qt无边框保留系统移动、缩放特效的设计细节,并提供Win11最大化按钮弹出snap layout的设计方案。
分类: 编程语言 发布时间: 08-09 22:41 阅读次数: 0

一个更优的字符串左旋算法

使用递归方法实现字符串左旋字符串的相关算法中,有一个左旋操作,将一个字符串进行按字符左旋k次,例如,“abcdefgh"左旋3次,得到"defghabc":实现该操作的算法常见有三种:将第一个字符缓存,将后面的所有字符向前移动一位,最后将缓存的第一个字符存到最后空出来的位置。这样的的操作执行k次。将前k个字符缓存,然后将剩余字符一次性向前移动k位,最后将缓存的内容填充到空出来的位置。将字符串分成两部分,前一部分长度为k,这两部分分别执行一次字符串反转,最后再对整个字符出串执行翻转。个人对左
分类: 编程语言 发布时间: 08-09 22:41 阅读次数: 0

一种奇怪的函数声明写法

typedef定义函数类型的函数声明写法最近网友遇到个问题:typedef void(FunType)(int);FunType a;这种写法,a是的什么东西,可以编译通过,用gcc测试输出a,结果是1。但是msvc,尝试输出a时会报错,int a(int,int)无法解析的外部符号之类的。还好msvc的错误比较明确,既然是a的链接出了问题,尝试在别处写个定义:void a(int){}编译通过,msvc输出变成了函数地址。结论通常都是定义函数指针类型:typedef void(
分类: 编程语言 发布时间: 08-09 22:41 阅读次数: 0

Qt信号槽与事件循环的关系

本文通过几个例子来研究Qt信号槽与事件循环的关系,帮助初学者遇到信号槽无法正确触发时快速定位问题。
分类: 编程语言 发布时间: 08-09 22:41 阅读次数: 0

关于Qt高频率信号槽合并的误解和方案

Qt开发过程中,面对高频率的信号触发,开发者会希望将信号合并。本文由简入难提出几个方案,尝试解决不同的应用场景。
分类: 编程语言 发布时间: 08-09 22:41 阅读次数: 0

个人实现的可任意折叠QToolBox——AdvancedToolBox

自己实现的AdvanceToolBox,增强QToolBox功能。支持使用样式表设置标题样式,支持动态折叠展开、调整高度、自动布局。目前仅支持垂直布局。
分类: 其他 发布时间: 08-09 22:41 阅读次数: 0

关于研究鼠标绘制平滑曲线的阶段总结

关于鼠标绘制平滑曲线的研究总结,整理一些曲线拟合相关的进展,和最终成果
分类: 编程语言 发布时间: 08-09 22:41 阅读次数: 0

K8S集群中Coredns域名解析故障排查思路

无论是什么原因,只要是无法解析域名,就按照下面几步进行排查:1)排查Coredns组件的运行状态是否出现异常,查看运行日志获取关键信息。2)查看Node节点的/etc/resolv.conf文件中DNS地址是否配置正确,再进入到Pod中查看/etc/resolv.conf文件中DNS地址是否配置正确。3)通过K8S资源编排文件中的dnsConfig配置参数,手动配置搜索域。...
分类: 企业开发 发布时间: 08-09 22:40 阅读次数: 0

CSDN Markdown 之我见代码块 | CSDN编辑器测评

通过 MD 格式来撰写文章应该是大多数程序员的习惯,尤其是可以方便的插入代码块,要知道优美的代码格式,可以给读者带来飞一般的阅读体验哦!但是很可惜,C站的新版 Markdown 编辑器,在代码块处理方面还是不尽如人意的,比如:Pythonimport osprint("hello world")JS// An highlighted blockvar foo = 'bar';在编辑的时候,已经指定了两种不同语言,但是渲染出来的代码形式,基本一致这看起来与其他更加专业的MD编辑器对比来
分类: 编程语言 发布时间: 08-09 22:40 阅读次数: 0

Pandas Query 方法深度总结

大多数 Pandas 用户都熟悉 iloc[] 和 loc[] 索引器方法,用于从 Pandas DataFrame 中检索行和列。但是随着检索数据的规则变得越来越复杂,这些方法也随之变得更加复杂而臃肿。同时 SQL 也是我们经常接触且较为熟悉的语言,那么为什么不使用类似于 SQL 的东西来查询我们的数据呢事实证明实际上可以使用 query() 方法做到这一点。因此,在今天的文章中,我们将展示如何使用 query() 方法对数据框执行查询获取数据我们使用 kaggle 上的 Titanic 数据集作
分类: 编程语言 发布时间: 08-09 22:40 阅读次数: 0

通过Pyecharts绘制可视化地球竟然如此简单!

今天我们使用 Pyecharts 制作一个地球可视化项目,一起来看看吧Let’s go!数据处理这里我们使用全球新冠感染人数的数据集作为我们的测试数据,先来看看数据的整体情况import pandas as pddf = pd.read_csv("owid-covid-data.csv")df_0608 = df[df['date'] == '2022-06-08']df_new = df_
分类: 编程语言 发布时间: 08-09 22:40 阅读次数: 0

25张炫酷交互图表,一文入门Plotly

Plotly Express 是一个新的高级 Python 可视化库,它是 Plotly.py 的高级封装,为复杂图表提供简单的语法。最主要的是 Plotly 可以与 Pandas 数据类型 DataFrame 完美的结合,对于数据分析、可视化来说实在是太便捷了,而且是完全免费的,非常值得尝试下面我们使用 Ployly 的几个内置数据集来进行相关图表绘制的演示数据集Plotly 内置的所有数据集都是 DataFrame 格式,也即是与 Pandas 深度契合的体现不同国家历年GDP收入与人均寿命包
分类: 编程语言 发布时间: 08-09 22:40 阅读次数: 0

神库,可视化Python程序调用流程

今天我们来分享一个 Python 领域的神级第三方库 -- pycallgraph,通过该库并结合 graphviz 工具,就可以非常方便的完成 Python 应用程序调用流程的可视化工作我们先来看下效果图怎么样,很是惊艳吧~下面我们就来一起完成这个可视化过程安装 graphviz 工具生成图片的过程,是依赖工具 graphviz 的,我们先进行下载安装下载地址http://www.graphviz.org/download/详细对于 graphviz 工具,大家应该也熟悉了,我们以前
分类: 编程语言 发布时间: 08-09 22:40 阅读次数: 0

Pandas GroupBy 深度总结

今天,我们将探讨如何在 Python 的 Pandas 库中创建 GroupBy 对象以及该对象的工作原理。我们将详细了解分组过程的每个步骤,可以将哪些方法应用于 GroupBy 对象上,以及我们可以从中提取哪些有用信息不要再观望了,一起学起来吧使用 Groupby 三个步骤首先文末要知道,任何 groupby 过程都涉及以下 3 个步骤的某种组合:根据定义的标准将原始对象分成组对每个组应用某些函数整合结果让我先来大致浏览下今天用到的测试数据集import pandas a
分类: 编程语言 发布时间: 08-09 22:40 阅读次数: 0

万字长文Python面试题,建议先收藏

精心整理的 Python 相关的基础知识,用于面试,或者平时复习,都是很好的!废话不多说,直接开搞由于文章过长,萝卜哥也贴心的把文章整理成了PDF文档,在文末查看获取方式基础篇1. 为什么学习 Python2. 解释型和编译型语言的区别3. 简述下 Python 中的字符串、列表、元组和字典4. 简述上述数据类型的常用方法5. 简述 Python 中的字符串编码6.一行代码实现数值交换7. is 和 == 的区别8.Python 函数中的参数类型9.`*arg` 和 `**kwarg` 作用10.一行代
分类: 编程语言 发布时间: 08-09 22:39 阅读次数: 0