<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0"><channel><title>PyQt</title><link>https://pyqt.site</link><atom:link href="https://pyqt.site/rss.xml" rel="self" type="application/rss+xml"/><description>PyQt</description><generator>Halo v2.22.14</generator><language>zh-cn</language><image><url>https://pyqt.site/upload/avatar.png</url><title>PyQt</title><link>https://pyqt.site</link></image><lastBuildDate>Thu, 12 Mar 2026 22:47:01 GMT</lastBuildDate><item><title><![CDATA[QComboBox样式表 - QSS]]></title><link>https://pyqt.site/archives/qcomboboxyang-shi-biao---qss</link><description><![CDATA[<img src="https://pyqt.site/plugins/feed/assets/telemetry.gif?title=QComboBox%E6%A0%B7%E5%BC%8F%E8%A1%A8%20-%20QSS&amp;url=/archives/qcomboboxyang-shi-biao---qss" width="1" height="1" alt="" style="opacity:0;">QComboBox QComboBox 是Qt 框架中一个常用的下拉列表框控件，允许用户从预定义的选项中选择或直接输入内容。它的样式美化稍微有点复杂，比如本身的边框，下拉按钮，以及弹出来的选项窗口等。 这里尤其需要注意的下拉弹出的窗口，这个窗口不支持样式直接设置，所以需要结合代码中对该窗口进行特殊设]]></description><guid isPermaLink="false">/archives/qcomboboxyang-shi-biao---qss</guid><dc:creator>Irony</dc:creator><pubDate>Wed, 31 Dec 2025 16:02:28 GMT</pubDate></item><item><title><![CDATA[QRadioButton样式表 - QSS]]></title><link>https://pyqt.site/archives/qradiobutton-qss</link><description><![CDATA[<img src="https://pyqt.site/plugins/feed/assets/telemetry.gif?title=QRadioButton%E6%A0%B7%E5%BC%8F%E8%A1%A8%20-%20QSS&amp;url=/archives/qradiobutton-qss" width="1" height="1" alt="" style="opacity:0;">QRadioButton QRadioButton 是Qt框架中用于实现单选按钮的控件，继承自 QAbstractButton ，所以它自然拥有和按钮一样的鼠标悬停、鼠标按下等状态。它的样式美化和基本的按钮 QPushButton 差不多，唯一可能需要注意的是它的指示器 indicator ，即它的]]></description><guid isPermaLink="false">/archives/qradiobutton-qss</guid><dc:creator>Irony</dc:creator><category>教程</category><pubDate>Fri, 31 Oct 2025 10:10:13 GMT</pubDate></item><item><title><![CDATA[如何在MacOS M1上安装PyQt5]]></title><link>https://pyqt.site/archives/macm1pyqt</link><description><![CDATA[<img src="https://pyqt.site/plugins/feed/assets/telemetry.gif?title=%E5%A6%82%E4%BD%95%E5%9C%A8MacOS%20M1%E4%B8%8A%E5%AE%89%E8%A3%85PyQt5&amp;url=/archives/macm1pyqt" width="1" height="1" alt="" style="opacity:0;">由于官方并没有在M1上编译PyQt导致安装存在一些问题。 M1上的Python不能直接使用x64的 PyQt5。但是M1上可以运行x64的Python。所以通过安装x64的Python然后再安装PyQt5即可。 安装Python https://www.python.org/ftp/python/3]]></description><guid isPermaLink="false">/archives/macm1pyqt</guid><dc:creator>Irony</dc:creator><category>教程</category><pubDate>Sat, 7 Oct 2023 06:08:00 GMT</pubDate></item><item><title><![CDATA[学习心得]]></title><link>https://pyqt.site/archives/studynotes</link><description><![CDATA[<img src="https://pyqt.site/plugins/feed/assets/telemetry.gif?title=%E5%AD%A6%E4%B9%A0%E5%BF%83%E5%BE%97&amp;url=/archives/studynotes" width="1" height="1" alt="" style="opacity:0;">Python基础 在学习PyQt的过程中由于资料的缺乏或者没有中文导致大多数人感叹资料太少，学习困难，又或者急于求进，赶鸭子上架的情况，此时有系统的学习方法很重要。每个人都需要有自己的学习方法，别人的学习方法并不一定适合自己但可以采纳一些。笔者在这里列举了一些当初自己自学的一些心得和方法，希望帮助大]]></description><guid isPermaLink="false">/archives/studynotes</guid><dc:creator>Irony</dc:creator><category>默认分类</category><pubDate>Mon, 26 Aug 2019 01:00:00 GMT</pubDate></item><item><title><![CDATA[常见问题]]></title><link>https://pyqt.site/archives/faq</link><description><![CDATA[<img src="https://pyqt.site/plugins/feed/assets/telemetry.gif?title=%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98&amp;url=/archives/faq" width="1" height="1" alt="" style="opacity:0;">常见问题整理 这里会收集和整理各种常见问题，包括但不限于编辑器问题、编译打包问题、常见犯错。 案例库和提问 有专门的项目收集例子、提交例子、和回答问题，同时也建议大家都在上面多多提问和提交例子，这样可以留下记录方便遇到同样问题的人快速找到答案。 项目地址：]]></description><guid isPermaLink="false">/archives/faq</guid><dc:creator>Irony</dc:creator><category>默认分类</category><pubDate>Thu, 20 Jun 2019 02:58:00 GMT</pubDate></item><item><title><![CDATA[WebView与Javascript交互]]></title><link>https://pyqt.site/archives/qtwebjs</link><description><![CDATA[<img src="https://pyqt.site/plugins/feed/assets/telemetry.gif?title=WebView%E4%B8%8EJavascript%E4%BA%A4%E4%BA%92&amp;url=/archives/qtwebjs" width="1" height="1" alt="" style="opacity:0;">以前还是QWebView的时候和Javascript交互起来很方便，但是到了Qt5.6以后改用了QWebEngineView，并通过其提供的qwebchannel.js来进行交互。可能是由于刚出来的原因，这玩意儿有个bug就是必须在每次加载页面的时候手动注入，跳转页面后就失效了，需要手动注入，目前有]]></description><guid isPermaLink="false">/archives/qtwebjs</guid><dc:creator>Irony</dc:creator><category>例子</category><pubDate>Wed, 22 May 2019 03:30:00 GMT</pubDate></item><item><title><![CDATA[PyQt窗口翻转动画]]></title><link>https://pyqt.site/archives/flipwidgetanimation</link><description><![CDATA[<img src="https://pyqt.site/plugins/feed/assets/telemetry.gif?title=PyQt%E7%AA%97%E5%8F%A3%E7%BF%BB%E8%BD%AC%E5%8A%A8%E7%94%BB&amp;url=/archives/flipwidgetanimation" width="1" height="1" alt="" style="opacity:0;">QQ的界面一直是用来模仿练习做界面的好东西，这里就有一个类似QQ登录界面的实现翻转效果，当然这里并没有用两个窗口去做，而是用了QStackedWidget包含两个控件做切换，同时单独使用一个窗口做动画绘制。 原理说明 用了两个QLabel来显示模拟的图片界面，并实现鼠标点击模拟真实的窗口对应位置点击]]></description><guid isPermaLink="false">/archives/flipwidgetanimation</guid><dc:creator>Irony</dc:creator><category>例子</category><pubDate>Wed, 15 May 2019 14:48:00 GMT</pubDate></item><item><title><![CDATA[PyQt属性动画]]></title><link>https://pyqt.site/archives/propertyanimation</link><description><![CDATA[<img src="https://pyqt.site/plugins/feed/assets/telemetry.gif?title=PyQt%E5%B1%9E%E6%80%A7%E5%8A%A8%E7%94%BB&amp;url=/archives/propertyanimation" width="1" height="1" alt="" style="opacity:0;">QPropertyAnimation继承自QVariantAnimation，其作为Qt的属性动画用于针对控件的属性或者继承自QObject的对象中定义的属性做修改， 简单来说就是基类是QObject且定义了属性变量，就可以用QPropertyAnimation来做属性动画。同时也可以通过pyqtP]]></description><guid isPermaLink="false">/archives/propertyanimation</guid><dc:creator>Irony</dc:creator><category>例子</category><pubDate>Wed, 8 May 2019 07:43:00 GMT</pubDate></item><item><title><![CDATA[如何查阅Qt文档]]></title><link>https://pyqt.site/archives/viewapi</link><description><![CDATA[<img src="https://pyqt.site/plugins/feed/assets/telemetry.gif?title=%E5%A6%82%E4%BD%95%E6%9F%A5%E9%98%85Qt%E6%96%87%E6%A1%A3&amp;url=/archives/viewapi" width="1" height="1" alt="" style="opacity:0;">很多网友在问有没有PyQt5的文档之类的问题，在PyQt4的时候PyQt官网有了英文版的文档，随后有网友翻译成了中文。不过现在PyQt5官方的文档都指向了C++的Qt文档，其实C++的Qt API文档结构很清晰，翻阅很容易的，需要注意几点。 作为一个开发人员确实需要具备查阅文档、查询资料等基础技能，]]></description><guid isPermaLink="false">/archives/viewapi</guid><dc:creator>Irony</dc:creator><category>教程</category><pubDate>Sat, 4 May 2019 12:50:00 GMT</pubDate></item><item><title><![CDATA[PyQt三种方式绑定信号槽]]></title><link>https://pyqt.site/archives/bindsignals</link><description><![CDATA[<img src="https://pyqt.site/plugins/feed/assets/telemetry.gif?title=PyQt%E4%B8%89%E7%A7%8D%E6%96%B9%E5%BC%8F%E7%BB%91%E5%AE%9A%E4%BF%A1%E5%8F%B7%E6%A7%BD&amp;url=/archives/bindsignals" width="1" height="1" alt="" style="opacity:0;">网上关于PyQt5的信号绑定使用的教程比较上，很多还是以前的绑定方式，导致在PyQt5中无法使用，这里归纳总结下已有的几种绑定信号槽的方式，这几种方式各有各的优点和缺点。 方式一 这个方式是最开始接触设计师的时候知道的，主要是通过控件的objectNameQtCore.QMetaObject.con]]></description><guid isPermaLink="false">/archives/bindsignals</guid><dc:creator>Irony</dc:creator><category>教程</category><pubDate>Sat, 4 May 2019 08:07:00 GMT</pubDate></item><item><title><![CDATA[PyQt调整窗口显示边框]]></title><link>https://pyqt.site/archives/showframe</link><description><![CDATA[<img src="https://pyqt.site/plugins/feed/assets/telemetry.gif?title=PyQt%E8%B0%83%E6%95%B4%E7%AA%97%E5%8F%A3%E6%98%BE%E7%A4%BA%E8%BE%B9%E6%A1%86&amp;url=/archives/showframe" width="1" height="1" alt="" style="opacity:0;">在Windows某些场景下调整窗口大小或者移动后就会导致里面的内容重绘（速度慢，卡顿，闪烁），其实在以前 Windows在低配置设备为了减少这种频繁绘制的情况，默认会开启这种效果，不过目前设备越来越好了就关闭了该功能。具体是在控制面板中-&gt;调整Windows的外观和性能-&gt;去掉勾选 拖动时显示窗口内]]></description><guid isPermaLink="false">/archives/showframe</guid><dc:creator>Irony</dc:creator><category>例子</category><pubDate>Fri, 26 Apr 2019 14:19:00 GMT</pubDate></item><item><title><![CDATA[PyQt判断信号是否连接]]></title><link>https://pyqt.site/archives/issignalconnected</link><description><![CDATA[<img src="https://pyqt.site/plugins/feed/assets/telemetry.gif?title=PyQt%E5%88%A4%E6%96%AD%E4%BF%A1%E5%8F%B7%E6%98%AF%E5%90%A6%E8%BF%9E%E6%8E%A5&amp;url=/archives/issignalconnected" width="1" height="1" alt="" style="opacity:0;">在PyQt中某些情况下需要取消原来的信号连接，此时需要使用disconnect方法，但是在逻辑不严谨的情况下可能会导致多次调用disconnect方法而导致报错，当然可以通过try except来包裹代码。这里通过 isSignalConnected 来判断信号是否连接。 实现 在QOjbect文档]]></description><guid isPermaLink="false">/archives/issignalconnected</guid><dc:creator>Irony</dc:creator><category>教程</category><pubDate>Fri, 26 Apr 2019 14:06:00 GMT</pubDate></item><item><title><![CDATA[PyQt无边框圆角阴影]]></title><link>https://pyqt.site/archives/shadowradius</link><description><![CDATA[<img src="https://pyqt.site/plugins/feed/assets/telemetry.gif?title=PyQt%E6%97%A0%E8%BE%B9%E6%A1%86%E5%9C%86%E8%A7%92%E9%98%B4%E5%BD%B1&amp;url=/archives/shadowradius" width="1" height="1" alt="" style="opacity:0;">在做PyQt窗口开发中经常会遇到要做一些无边框不规则的窗口，可能还会带有阴影效果，这里演示做一个简单的无边框圆角的窗口，原理就在于背景窗口的透明和一层有色背景控件的叠加。 原理说明 黑色（方便说明）的QDialog或者QWidget作为全透明无边框窗口。 其中白色的QWidget才是主要显示圆角和阴]]></description><guid isPermaLink="false">/archives/shadowradius</guid><dc:creator>Irony</dc:creator><category>例子</category><pubDate>Thu, 25 Apr 2019 16:06:00 GMT</pubDate></item><item><title><![CDATA[PyQt编译QWebView与QWebEngineView共存]]></title><link>https://pyqt.site/archives/webviewnew</link><description><![CDATA[<img src="https://pyqt.site/plugins/feed/assets/telemetry.gif?title=PyQt%E7%BC%96%E8%AF%91QWebView%E4%B8%8EQWebEngineView%E5%85%B1%E5%AD%98&amp;url=/archives/webviewnew" width="1" height="1" alt="" style="opacity:0;">在PyQt5.5过后移除了QWebView控件，改用QWebEngineView，但是这个刚开始用起来不是很方便，最近在整理一些例子的时候需要同时使用QWebView和QWebEngineView，故希望把QWebView重新加入到后面的PyQt5版本中，查看PyQt5.10.1的源码发现里面其实是]]></description><guid isPermaLink="false">/archives/webviewnew</guid><dc:creator>Irony</dc:creator><category>教程</category><pubDate>Sat, 12 Jan 2019 11:28:00 GMT</pubDate></item><item><title><![CDATA[FFmpeg合成加密HLS记录]]></title><link>https://pyqt.site/archives/ffmpeghls</link><description><![CDATA[<img src="https://pyqt.site/plugins/feed/assets/telemetry.gif?title=FFmpeg%E5%90%88%E6%88%90%E5%8A%A0%E5%AF%86HLS%E8%AE%B0%E5%BD%95&amp;url=/archives/ffmpeghls" width="1" height="1" alt="" style="opacity:0;">记录在某个需求中要求截图并合成加密视频文件，这里采用FFmpeg的管道流来实现生成HLS加密文件。 #!/usr/bin/env python # -*- coding: utf-8 -*- """ Created on 2019年3月4日 @author: Irony @email: 89276]]></description><guid isPermaLink="false">/archives/ffmpeghls</guid><dc:creator>Irony</dc:creator><category>笔记</category><pubDate>Sat, 12 Jan 2019 11:28:00 GMT</pubDate></item><item><title><![CDATA[PyQt之图片轮播]]></title><link>https://pyqt.site/archives/pageswitching</link><description><![CDATA[<img src="https://pyqt.site/plugins/feed/assets/telemetry.gif?title=PyQt%E4%B9%8B%E5%9B%BE%E7%89%87%E8%BD%AE%E6%92%AD&amp;url=/archives/pageswitching" width="1" height="1" alt="" style="opacity:0;">之前看到了QStackedWidget做切换动画，让界面不那么生硬，于是参考了 http://qt.shoutwiki.com/wiki/Extending_QStackedWidget_for_sliding_page_animations_in_Qt 做了一个QStackedWidget的切换动]]></description><guid isPermaLink="false">/archives/pageswitching</guid><dc:creator>Irony</dc:creator><category>例子</category><pubDate>Sat, 24 Nov 2018 13:45:00 GMT</pubDate></item><item><title><![CDATA[PyQt之QSlider滑动条点击定位]]></title><link>https://pyqt.site/archives/jumpslider</link><description><![CDATA[<img src="https://pyqt.site/plugins/feed/assets/telemetry.gif?title=PyQt%E4%B9%8BQSlider%E6%BB%91%E5%8A%A8%E6%9D%A1%E7%82%B9%E5%87%BB%E5%AE%9A%E4%BD%8D&amp;url=/archives/jumpslider" width="1" height="1" alt="" style="opacity:0;">QSlider 在通常情况下支持鼠标点击可以任意拖动，或者鼠标点击则往鼠标点击的方向移动一小格，这种移动一小格通常情况下用起来很不方便，比如我要做一个播放器的播放进度条，肯定是点击某个位置就直接跳到该位置，为此需要对 QSlider 的鼠标事件mousePressEvent进行重写。 实现方法 一般]]></description><guid isPermaLink="false">/archives/jumpslider</guid><dc:creator>Irony</dc:creator><category>例子</category><pubDate>Mon, 5 Nov 2018 15:12:00 GMT</pubDate></item><item><title><![CDATA[PyQt显示.9格式的PNG图片]]></title><link>https://pyqt.site/archives/qtninepatch</link><description><![CDATA[<img src="https://pyqt.site/plugins/feed/assets/telemetry.gif?title=PyQt%E6%98%BE%E7%A4%BA.9%E6%A0%BC%E5%BC%8F%E7%9A%84PNG%E5%9B%BE%E7%89%87&amp;url=/archives/qtninepatch" width="1" height="1" alt="" style="opacity:0;">做过安卓开发的和使用过QQ的都知道.9.png这种图片格式，效果就如QQ的聊天气泡一样可以拉伸，这种格式的图片允许开发人员定义可扩展区域，当需要延伸图片以填充比图片本身更大区域时，可扩展区的内容被延展；允许开发人员定义内容显示区，用于显示文字或其他内容。目前在Github上有两个C++版本的，在这里]]></description><guid isPermaLink="false">/archives/qtninepatch</guid><dc:creator>Irony</dc:creator><category>例子</category><pubDate>Fri, 26 Oct 2018 02:00:00 GMT</pubDate></item><item><title><![CDATA[PyQt菜单之多选功能]]></title><link>https://pyqt.site/archives/mselectmenu</link><description><![CDATA[<img src="https://pyqt.site/plugins/feed/assets/telemetry.gif?title=PyQt%E8%8F%9C%E5%8D%95%E4%B9%8B%E5%A4%9A%E9%80%89%E5%8A%9F%E8%83%BD&amp;url=/archives/mselectmenu" width="1" height="1" alt="" style="opacity:0;">有时候会遇到这种需求：在界面某个位置弹出一个菜单，其中里面的菜单项可以多选（类似配置选项），此时 用QMenu会遇到点击一个菜单项就会自动关闭，当然可以通过其他方式实现该功能，不过这里就采用QMenu通过特殊的方式来实现该需求。 需求 要实现的效果： 菜单1 菜单2 菜单3 菜单4 点击菜单1、2、]]></description><guid isPermaLink="false">/archives/mselectmenu</guid><dc:creator>Irony</dc:creator><category>例子</category><pubDate>Thu, 25 Oct 2018 01:53:00 GMT</pubDate></item><item><title><![CDATA[PyQt结合Asyncio异步]]></title><link>https://pyqt.site/archives/pyqt5asyncio</link><description><![CDATA[<img src="https://pyqt.site/plugins/feed/assets/telemetry.gif?title=PyQt%E7%BB%93%E5%90%88Asyncio%E5%BC%82%E6%AD%A5&amp;url=/archives/pyqt5asyncio" width="1" height="1" alt="" style="opacity:0;">今天尝试了下 quamash https://github.com/harvimt/quamash 框架，该框架是一个PyQt的异步事件循环封装库，使用Python3+ 的asyncio这个异步库。在看了该项目的内容后发现只有一个简单的进度条例子，故尝试用其来下载网络图片并显示。 安装依赖 pip]]></description><guid isPermaLink="false">/archives/pyqt5asyncio</guid><dc:creator>Irony</dc:creator><category>例子</category><pubDate>Wed, 24 Oct 2018 06:32:00 GMT</pubDate></item></channel></rss>