Bootstrap

PyQt5编程经验总结

采用Qt Designer设计UI界面,将设计好的界面保存为xx.ui文件,通过PyUIC转为.py文件,编写main()调用。
1.线程 (高并发[多用户多请求]、处理耗时任务)
PyQt5中,子线程不能直接更新主线程UI,若直接在子线程中更新UI,程序可能会崩溃。UI更新应在主线程中执行,因此不能将控件对象传到子线程中操作,需要将子线程上执行的操作通过信号与槽机制发送给主线程。
主要步骤:(1)创建线程[对象] (2)自定义信号[传参]  (3)重写run()[写功能] (4)将线程信号连接到槽函数 (5)编写槽函数[主线程] (6)启动线程start()
note:在有关进度条显示,发送信号时,不能过于频繁,尽可能减少信号发送次数,不然会产生资源占用。若仅通过for循环单纯的发送信号,为避免进度条更新问题,可适当增加time.sleep()。

2.文件命名
生成文件命名时,注意在Windows下文件的命名规则(如“:”等不能使用)。

3.文本输入框
在文本输入框中,需显示字符串形式,否则清空内容时,会出现问题。

4.csv文件内容读取
采用errors='ignore' 来忽略错误的字节,或者 errors='replace' 来用替代字符替换无法解码的字节。

5.常用文件操作
os.listdir()返回指定文件夹包含文件列表也包含子文件夹
os.path.join()拼接文件路径

6.控件设置样式
在类名后用“#”号接变量名,这样子控件就不受影响。
        QWidget # widget

;