日度归档:2022 年 6 月 13 日

绕过PyQt6的一些小坑

直接进入干货,供遇到相同情况的小伙伴参考。

一、pyuic6导出designer设计的窗体,py代码不完全兼容PyQt6

用Qt Designer设计完界面后,要用pyuic6导出为py文件,再在代码中调用,但直接调用会报错,原因是部分代码(主要是窗体对齐)导出的还是PyQt5的格式。
如导出为:

QtCore.Qt.AlignHCenter

在PyQt6下应该是:

QtCore.Qt.AlignmentFlag.AlignHCenter

需要将所有的对齐代码修改过来。可以用脚本自动处理(在windows下时可用wsl执行)。

awk '{sub(/Qt.AlignH/,"Qt.AlignmentFlag.AlignH");sub(/Qt.AlignL/,"Qt.AlignmentFlag.AlignL
");sub(/Qt.AlignB/,"Qt.AlignmentFlag.AlignB");sub(/Qt.AlignV/,"Qt.AlignmentFlag.AlignV");sub(/Qt.AlignT/,"Qt.AlignmentFlag.AlignT");sub(/Qt.AlignR/,"Qt.AlignmentFlag.AlignR"
);print $0}'

继续阅读