摘要:
亚克力效果的实现思路 上一篇博客《如何在pyqt中实现窗口磨砂效果》 中实现了win7中的Aero效果,但是和win10的亚克力效果相比,Aero还是差了点内味。所以今天早上又在网上搜了一圈,无意中发现了这篇博客《使用 SetWindowCompositionAttribute 来控制程序的窗口边框 阅读全文
摘要:
窗口的透视变换效果 当我们点击UWP应用中的小部件时,会发现小部件会朝着鼠标点击位置凹陷下去,而且不同的点击位置对应着不同的凹陷情况,看起来就好像小部件在屏幕上不只有x轴和y轴,甚至还有一个z轴。要做到这一点,其实只要对窗口进行透视变换即可。下面是对Qt的窗口和按钮进行透视变换的效果(GitHub 阅读全文
摘要:
前言 在《如何在pyqt中在实现无边框窗口的同时保留Windows窗口动画效果(一)》中,我们通过调用 C++ 的 dll 实现了带窗口动画的无边框窗口并解决了最大化时的窗口大小问题。但是这个方法需要电脑上有装 MSVC,所以下面使用 ~ctypes.windll 和 win32 来重新实现上述无边 阅读全文
摘要:
前言 在之前的博客《如何在pyqt中通过调用SetWindowCompositionAttribute实现Win10亚克力效果》中,我们实现了窗口的亚克力效果,同时也用SetWindowCompositionAttribute() 给亚克力窗口加上了阴影。但是更多时候我们用不到亚克力效果,但又需要给 阅读全文
摘要:
无边框窗体的实现思路 在pyqt中只要 self.setWindowFlags(Qt.FramelessWindowHint) 就可以实现边框的去除,但是没了标题栏也意味着窗口大小无法改变、窗口无法拖拽和窗口阴影的消失。网上有很多介绍pyqt自定义标题栏的方法,几乎都是通过处理 mousePress 阅读全文
摘要:
平滑滚动的视觉效果 Qt 自带的 QScrollArea 滚动时只能在两个像素节点之间跳变,看起来很突兀。刚开始试着用 QPropertyAnimation 来实现平滑滚动,但是效果不太理想。所以直接开了定时器,重写 wheelEvent() 来实现平滑滚动。效果如下: 实现思路 定时器溢出是需要时 阅读全文
摘要:
滚动字幕的视觉效果 网上有很多博客介绍了滚动字幕的实现方法,懂得都懂,大部是 Ctrl C + Ctrl V,效果还很差,最后还是得靠自己。主要思路就是通过定时器定时刷新+绘制两段完整的字符串来达到 蒙蔽双眼 滚动的效果,具体效果如下图所示 具体实现方式 ScrollTextWindow 类 窗口 阅读全文
摘要:
磨砂效果的实现思路 这两周一直在思考怎么在pyqt上实现窗口磨砂效果,网上搜了一圈,全都是 C++ 的实现方法。正好今天查python的官方文档的时候看到了 ctypes 里面的 HWND,想想倒不如换一条思路:让 C++ 帮我做磨砂的事情,而我只需要在python中调用 dll 中的接口函数就行了 阅读全文
摘要:
弹出菜单的视觉效果 QLineEdit 原生的菜单弹出效果十分生硬,而且样式很丑。所以照着Groove中单行输入框弹出菜单的样式和动画效果写了一个可以实现动态变化Item的弹出菜单,根据剪贴板的内容是否为文本、编辑框是否有文本以及是否有选中文本分为6种情况,大体效果如下所示(ヾ(๑╹◡╹)ノ" 硝子 阅读全文
摘要:
亚克力效果 在《如何在pyqt中实现窗口磨砂效果》和《如何在pyqt中实现win10亚克力效果》中,我们调用C++ dll来实现窗口效果,这种方法要求电脑上必须装有MSVC。Visual Studio装起来确实费时又占C盘空间,所以今天在python中直接调用 SetWindowCompositio 阅读全文
摘要:
前言 matplotlib 功能十分强大,就是工具栏丑了点。忍了一个学期之后,还是决定自己动手,魔改一波 matplotlib 的工具栏样式。同时给大家分享一下自己按照 MATLAB 写的 matplotlib 样式文件。注意:代码中 matplotlib 版本为 3.3.4,其他版本效果会不一样。 阅读全文
摘要:
前言 ~mpl_toolkits.mplot3d 生成的3D坐标系背景色是灰色的,刻度线也向内延伸了,如果搭配上其他白色背景的 2D 图,看起来很奇怪,比如下面这张图: 网上有一些办法可以将3D坐标区的背景设置为白色,比如: ax.w_xaxis.set_pane_color((1.0, 1.0, 阅读全文