自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 qt widget TreeWidget + Tabwidget 实现文件管理栏窗口

分享一下我自己做的QT应用主要功能是实现EXCL-图表转换,这个应用还只是雏形很多功能并没有完成,但是关于界面的功能已经实现了许多,用麻雀虽小五脏俱全来形容挺合适。;1.使用递归和树形结构的方式将文件路径存入树形节点,文件路径作为每个结点的唯一标识,每个目录可能存在多个文件和目录,每个子目录又可能存在多个子节点。2.使用递归的方式读取树形结构,已经将根目录下的所有文件都读取后,需要将文件再读出来,每个文件就是一个叶子结点,每个目录都是一个节点,跟目录就是根结点。

2024-08-31 21:48:05 393 2

原创 Qt widget 一组自定义特殊动画效果按钮

分享一下我自己做的QT应用,这个应用还只是雏形很多功能并没有完成,但是关于界面的功能已经实现了许多,用麻雀虽小五脏俱全来形容挺合适。;

2024-08-31 12:33:03 847

原创 Qt widget 遮罩效果绘制,解决点击遮罩覆盖显示窗口的问题

分享一下我自己做的QT应用,这个应用还只是雏形很多功能并没有完成,但是关于界面的功能已经实现了许多,用麻雀虽小五脏俱全来形容挺合适。;网上类似的遮罩效果不少,遮罩实际就是在要主窗口上放置widget,再在遮罩上放置要显示的窗口,但是存在一个问题就是初始时要显示的窗口是在遮罩上的,但是当点击遮罩区域时遮罩就显示到了显示窗口之上,并且会点击无法穿过遮罩,虽然可以通过点击穿透来使点击事件穿过遮罩但是这显然违反了使用遮罩的最初目的。

2024-08-31 11:00:00 495

原创 Qt widget 伸缩动画效果

分享一下我自己做的QT应用,这个应用还只是雏形很多功能并没有完成,但是关于界面的功能已经实现了许多,用麻雀虽小五脏俱全来形容挺合适。;这个折叠的功能做的比较生硬,如果不用动画来显示右侧工具栏的弹出的话可能会更流畅,一个折叠功能分为两个widget,左侧是自定义的widget来实现点击时的动画效果,右侧的widget是工具栏,关于伸缩的效果我是使用QPropertyAnimation控制右侧工具栏的宽度,在父类的widget中重写paintEvent事件根据两个子类的宽度实时修正父类widget的宽度。

2024-08-31 10:45:00 713

原创 QT widget 实现动态多语言切换,无需重启

重新加载翻译器,此时会重新加读取指定的qm文件,但是已经设置的文本是不会改变的,需要重启才能生效。2. 监听QEvent::LanguageChange事件,当切换翻译器时会在底层发出一个LanguageChange事件,所有的需要改变文本的窗口都监听这个事件。3.监听到了这个事件后去调用文本的设置函数(setText(tr("xxx"))此时tr("xx")中的内容就已经被替换了。提供一种思路实现:无需重启的多语言切换。

2024-08-31 10:15:00 794

原创 Qt widget 弹窗动画控件

Qt中实现弹窗效果,首先需要自定义一个widget,关键要做的就是使用QPropertyAnimation来控制弹窗的位置,在设置动画的初始位置需要将弹窗底部的初始位置和结束位置设置在窗口的上方,这样就可以实现弹窗的弹出和回弹。动画的效果选择:QEasingCurve::OutBounce和QEasingCurve::InBounce达到弹出和弹回的效果。弹窗的所有图标,文本,以及背景都是使用Qpainter重新绘制的,在父类中设置窗口的显示时,如果父类的类型是window那么是可以正常显示的;

2024-08-31 10:00:00 921

原创 【代码记录】LIS最长上升子序列简单思路+模板

首先区分子序列和子串的区别,子串必须是连续的,子序列可以是不连续的例题https://www.luogu.com.cn/problem/P1020算法一:贪心加二分实现(时间复杂度 :n*log(n))函数:lower_bound(ForwardIter first, ForwardIter last,const _Tp& val)算法返回一个非递减序列[first, last)中的第一个大于等于值val的位置。upper_bound(ForwardIter first, ...

2022-02-20 16:46:36 589

原创 【代码记录】优化朴素并查集和两种并查集类型模板

优化朴素并查集朴素并查集用数组存储元素,当数据很大或者数据量很多的时候,会导致无法查询,或者时间复杂度大幅上涨,可以用unordered_map来存储结点,unordered_map内部是哈希表,查询速度快...

2022-02-13 16:53:05 126

原创 【代码记录】进一步理解kmp中的next数组

kmp是一种改进的字符串匹配算法在字符串的匹配问题中,最坏情况下可能需要将目标串全部走完才能完,对于最朴素的做法而言,时间复杂度可能达到O(子串*目标串),当目标串非常长时,时间复杂度也会非常大。这时候就需要kmp算法来优化。在对kmp算法有所了解后,我们知道kmp的重点就在于求出next数组,更深入的了解next数组可以做题:https://www.luogu.com.cn/problem/P4391https://www.luogu.com.cn/problem/UVA10298ht

2022-01-30 12:43:51 1274

原创 【代码记录】线段树的区间修改与区间查询

线段树是一种二叉搜索树,线段树将一段区间划分为若干个单位区间,每一个结点对应着原线段区间的一段,线段树维护的问题需要满足区间加法例题:https://www.luogu.com.cn/problem/P3372线段树的建树typedef long long ll;void build(int p,int l,int r){ tre[p].l=l;tre[p].r=r; if(tre[p].l==tre[p].r) {//如果左右子树相等,就是叶子 tre[p].sum=a.

2022-01-21 21:53:55 567

原创 【代码记录】单调队列

单调队列:队列中的元素都具有单调性,队尾和队头都可以进行出队操作,只有队尾可以进行入队操作。例题:QVQ给定一个数组和一段滑动窗口求这段滑动窗口内的最大值。思路:如果要快速找出最大值,我们可以用一个双向单调队列来维护,队列放的是元素下标,假设队头是当前最大值元素的下标,每次移动窗口就是输出队头下标所表示的元素,为了能更快找到最大元素,队列中只保存可能成为最大值的下标。可以分为两个过程来实现:1.维护窗口长度,如果队列长度超过要求就删除队头元素2.维护窗口单调性,以单调递减为例,队列中

2022-01-14 11:00:30 163

原创 【代码记录】 多重背包的二进制优化与单调队列优化

多重背包问题有 N 种物品和一个容量是 V 的背包。第 i 种物品最多有 si 件,每件体积是 vi,价值是 wi。求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。求最大价值二进制优化(例题:QAQ)简单思路;将每件物品的数量分情况讨论,如果物品数量乘物品的体积大于背包的体积那么就可以看做一个完全背包,否则将第i种物品分成若干件物品,其中每件物品有一个系数,这件物品的费用和价值均是原来的费用和价值乘以这个系数。使这些系数分别为1,2,4,...,2^(k-1),n

2022-01-09 19:51:34 415

原创 HNCPC2021 D:Sum Them

思路:先把第一项,即从1到m的累乘求出来,然后从第2项开始,每次都乘i+m-1然后除去i-1,因为要取模,所以乘逆元。我们可以先把从1到2x10^6的所有逆元求出来,然后再直接调用,因为数量较多,可以采用线性求逆元的方法inv[1]=1; for(int i=2;i<=M;i++) inv[i]=(ll)(mod-mod/i)*inv[mod%i]%mod;#include<iostream>using namespace std;typedef long lo

2021-12-06 21:01:38 884

原创 HNCPC2021 C题 Average of Two Numbers

思路:先将给出的数分为奇数和偶数,在根据奇偶统计总共有多少数满足条件,本题应该用unordered_map,unorderd_map的查找速度比map快#include<iostream>#include<unordered_map>using namespace std;typedef long long ll;unordered_map<ll,ll>tt;ll a[1010],ans(0),sum(0),fum(0),c[1010],d[1010];

2021-12-06 18:37:10 996 1

原创 2021-04-22

一道错排问题题目:上周周赛结束了,每个同学都有一个排名,且不存在并列情况zks在统计协会周赛排名的时候,意外的将一部分同学排名统计错了。请问,zks将所有同学排名都统计错误的情况有多少种?输入第一行输入为一个整数n,代表有n名同学(1≤n≤15)输入:3;输出:2;首先要写出这道题就要了解什么是错排,错排就是将n个数放到n个位置上,再让你打乱顺序,使每个数与之前的标号都不一样这样,我们就可以将排序分为两个部分:第一,放置第一个数,有n-1种选法。然后,将剩下的..

2021-04-22 23:18:16 133

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除