跳转至

python

QTableWidget排序

有的时候想实现点击QTableWidget的表头就能实现排序的效果,一直没有找到合适的资料,前两天无意间发现这个功能了,以下是实现代码

QTableWidget选择问题

有的时候想设计成一次只能选择一行数据,但现实情况是没有一个直接的方法可以实现,要么允许可以选中多行,要么只能选择一个单元格,下面的代码可以解决这个问题

Word页面排版

Python
from docx import Document
from docx.shared import Inches
from docx.enum.section import WD_ORIENT

# 加载文档
document=Document('测试.docx')

# 加载sections类
sections = document.sections
section = sections[0]

# 设置上边距、左右边距为0.5英寸
section.left_margin = Inches(0.5)
section.top_margin = Inches(0.5)
section.right_margin = Inches(0.5)


# 设置纸张格式
section.page_width = Inches(0.5)
section.page_height = Inches(0.5)

# 设置纸张方向
# section.orientation = WD_ORIENT.LANDSCAPE # 改为横向
# section.orientation = WD_ORIENT.PORTRAIT # 改为纵向
"""好像不管用,不知道是咋回事"""

# 保存文档
document.save('测试2.docx')

ini配置文件问题

平时我会用到configparser.ConfigParser()来记录ini配置文件,但是近期在开发的时候就遇到一些问题,比如如果value中含有%,会导致无法正常使用set(),当时因为技术问题,就只能通过写入两个%%来解决,后来了解到configparser模块还有一个类是configparser.RawConfigParser(),如果你用这个类来写入含有%的数据,就没有出现问题了。 但是在某些特殊情况下,section中的key因为含有一些特殊值,导致无法使用configparser模块,比如C:\Program Files\VeraCrypt\veracrypt.inf,没有办法,就只能使用QSetting来解决,相关代码如下:

loguru显示日志和写入日志

自定义日志显示和写入

loguru是一个比较简单的日志管理的模块,但是如果有时有这样的需求:程序同时有info、warning、error等日志需要写入到文本中,但是不是所有的日志都需要打印到终端中让用户看到,比如只让用户看到warning、error的日志信息,但是隐藏部分info的日志,这个时候可以使用以下的方法:

lzma压缩分卷解压

最近重写EncryptionAssistant的时候,发现bat版的EncryptionAssistant在创建压缩分卷的时候创建的是7z.xz.001后缀的压缩包,这个不是7z压缩格式,而是属于lzma压缩格式,如果要处理这种压缩格式的文件,就只能通过lzma模块来解决,还有对于压缩分卷,需要提前合并之后再提取,参考代码如下:

pykeepass使用技巧

  1. 利用该模块创建数据库,代码示例如下:
    Python
    from pykeepass import create_database
    
    db = create_database("example.kdbx", password="password")
    db.save()