python 判断屏幕等宽字符串的长度
判断屏幕等宽字符串的长度?
判断屏幕等宽字符串的长度?
【新手】重庆 - 搬砖 - NoWait 22:41:50 @北京 - BUG 开发 - 黑择明 求指点
【专家】北京 - BUG 开发 - 黑择明 22:43:04 fontMetrics
【专家】 https://pyqt.site (892768447) 22:43:54 QFontMetrics
【专家】 https://pyqt.site (892768447) 22:44:09 通过 QLabel.font ().fontMetrics () 得到
【新手】重庆 - 搬砖 - NoWait 22:52:00
https://stackoverflow.com/questions/35771863/how-to-calculate-length-of-string-in-pixels-for-specific-font-and-size
【新手】重庆 - 搬砖 - NoWait 22:53:15 感觉和 fontMetrics 应该是差不多的
【专家】北京 - BUG 开发 - 黑择明 ...
修改pyuic代替pyside2-uic.
修改 pyuic 代替 pyside2-uic
修改 pyuic 代替 pyside2-uic.
最近看到挺多人用 pyside2 的 uic 编译 ui 文件有问题 .
写个解决办法.
首先,
pip install qtpy ,
这个是兼容 pyqt5 和 pyside2 的,无缝转换 .
然后,
修改 pyqt5 的 uic ,
最后用 pyuic5 , 生成 Ui_XXX.py 文件 .
python 状态机模块
用状态来取代 if…else 判断。
GUI 涉及到挺多的状态改变,以前一直用 if…else 来判断,最近读了设计模式,发现有个状态模式,随后发现了状态机这个东西 .
python 的状态机模块挺多的,不过好像很多都不更新了.
推荐 2 个状态机模块,但是也没有太深入的使用经验,就跑跑例子,以后有更详细的 pyqt 例子再补上 .
1: pip install python-statemachine
官方例子 : https://github.com/fgmacedo/python-statemachine
2. pip install state_machine
官方例子 : https://github.com/jtushman/state_machine
1 的 最近一次更新在 6 个月以前,使用 类继承 和 mixin 方式,不过有些地方不如 2 个人性化;
2 的设计更人性化一些,包括状态改变 before 和 after , 不过由于是装饰器实现的动态增加属性,有些地方编辑器智能提示可能就靠不上了.
两者实现实现方式不一样,有兴趣可以读读源码 .
qt 内 ...
在pyqt中使用python全局钩子模块
在某些时候需要为自己的软件增加全局键盘监听,比如软件最小化隐藏后可以通过热键唤醒,又或者比如像 QQ 一样可以全局热键截图。这里介绍几个方法实现在 PyQt 中使用 Python 全局钩子模块实现全局热键功能。
pyHook3
安装命令 : pip install pyhook3
https://blog.csdn.net/q871063970/article/details/86648386
似乎将 pyhook 支持 py3 版本的了?没有太多研究.
缺点:只支持 win 平台.
2. keyboard & mouse
安装命令: pip install keyboard mouse
from PyQt5 import QtGui, QtWidgets, QtCore
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
import keyboard
class Window(QWidget):
def __init__(self, ...
像读文章一样读源码
使用 snoop, 像读文章一样读源码。
不得不说 开源项目没有一个提纲 , 看起来太操蛋了。问了作者, 作者说 , 你运行下主函数, 然后慢慢跟 。。。
没有目的地概览 , 不知不觉就追究到细节里面去了。
所以这一篇文章的目地就是 , 如何在没有提纲的情况下 , 能更好的只关注流程 , 而不是细节 。
开始 :
python DEBUG 模块介绍 :
前段时间看过挺多文章提到 pysoonper 这个调试模块,有兴趣的可以百度一下.
个人尝试了一下,篇幅过大的 DEBUG 不适合用 pysoonper , 因为没有缩进!
这几天偶然遇到一个二次封装的模块 snoop, 完美地解决了这个问题.
操作步骤 :
1 . 在 eric6.py 的 main() 函数上加 snoop 装饰器;
2 . 用 vscode 打开 eric6start_.log 文件 (8 层深度 log 文件 34W 行,pycharm 对大文件支持很差);
发现可以折叠 , 但是最大可折叠等级只到 5 级 , 而且无法对对应等级折叠 , 有点遗憾 。也许是.log 格式选得不 ...
python 获取子进程print信息
在 PyQt 中使用子线程读取子进程 Python 脚本的 print 输出流内容。
问题所在:
如果模块都由自己开发, 正常操作
但是因为不能改,所以只能拦截:
代码:
pythonPath = self.pythonPath_cb.currentText()
if suffix == "py":
# 首次
self.pyCommand = [pythonPath, path]
self.modifiedReloadPython(path)
def modifiedReloadPython(self, path_):
os.chdir(os.path.dirname(path_))
# 子进程调用
self.p = subprocess.Popen(self.pyCommand, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
# self.stdoutWorker.p = self.p
self.stdoutWorker = Worker(self.p)
...
推荐编辑器LiClipse
关于 Python 的开发编辑器有很多,每个人有每个人的喜好,经常看到很多在问什么编辑器好用,有人推荐 Sublime,有人推荐 Pycharm 等等,这里就不去比较其它编辑器的优缺点了,只谈谈关于 LiClipse 这个编辑器在初级使用阶段的智能提示功能等。开箱即用,支持多种语言,RST,Markdown 和 HTML 编辑器的 HTML 预览。
其实 LiClipse 这个编辑器就是以前的 PyDev 插件的独立版本,基于 Eclipse 编辑器开发,去掉了 Java 的相关开发功能,关于软件的详细说明可以去官网查看: http://www.liclipse.com/
编辑器只需要少量的配置,打开即可使用,快速自动 import,也可以根据需要安装自己所需的插件,比如 json、svn、主题插件等。个人推荐:适合刚入门的新手使用
由于新版的 PyQt 和 PyDev 去掉了详细的函数提示,所以 PyQt 的智能提示只有函数和返回值,并没有英文注释,但是以前的比如 PyQt4 的智能提示应该是有详细的英文注释提示。
# 界面预览
主界面
鼠标悬停提示
输入提示
Git 面板 ...
python 拷贝虚拟环境(一)
通常来说,刚开始使用 python 的时候都是把包装到全局路径,随着各个项目安装的包越来越多,之后每开始一个项目,pycharm 创建索引的时间都越来越漫长,所以不可避免得开始使用虚拟环境。
经过一番了解 ,虚拟环境的优点有这些:
改善 pycharm 索引时间;
各个项目的库不会冲突;
理论上虚拟环境可以给同版本的操作系统使用 (未试验过);
pip freeze > requestment.txt 导出的依赖清晰;
各个版本的 python 共存;
…
python 虚拟环境库除了自带的 venv , 还有三方库 virtualenv , 此外 在 virtualenv 基础上又开发了 virtualenvwrapper(virtualenvwrapper_win) 来管理
本文基于 virtualenvwrapper 创建的虚拟环境来讲解.
以下是收集的一些virtualenvwrapper配置教程:
# linux平台
https://www.cnblogs.com/netfoxman/p/5994697.html
# window平台
https://bl ...
PyQtClient例子客户端
对本博客所写的项目 PyQt 例子进行一个客户端的编写,客户端主要实现一些动画效果,更换皮肤,运行例子等功能。
# 项目地址
# Windows 客户端下载
包含部分例子
不包含例子
百度网盘 提取码: nadv
# 效果图