Python之PyQt5可视化编程01

       最近在做一个PC端可视化显示的小项目,针对技术实现方案和手段方便,经过查阅和与人交流后,发现Python的PyQt模块继承了QT原有的技术特点,利用QtDesigner设计用户需要的UI界面,在经过Pycharm的External Tools工具PyUIC将UI界面转化为python代码,然后开发者就可以在该基础上实现按键或者控件的对应响应功能。

    类似于在学习Linux嵌入式编程过程中一样,在学习Python的过程中,一开始总有各种小问题小技巧需要开发者积累和总结,故写下如下内容,以便后续查阅以及供大家分享。

1、PyQt5界面刷新函数:QApplication.processEvents()

注:该命令仅仅是刷新一下当前界面,并不是清除界面也不是重新生成新界面;

2、UI界面布局自动调整子图间距:plt.tight_layout()

注:plt是指import matplotlib.pyplot as plt

3、Ques问题:使用imshow(A)显示一张灰度图片时,显示出来的效果是一张纯白图片(A为double类型的图像矩阵)

Ans分析:在原来的matlab计算中,为了保证计算的精度,经过运算的图像矩阵A其类型会从unit8型变成double型。在imshow(A)显示的A如果是double型,则会被认为范围为0-1,A如果是unit8型则会是正常的灰度图片范围0-255.

Way解决办法:使用imshow(A,[ ])

4、python中怎么将显示的画面显示一定时间后关闭?

ANS:此时不能简单使用plt.show(),需要设置显示的时间,plt.ion()然后设置显示的时间plt.pause(time_sec),最后在plt.close()

实例:

from matplotlib import pyplot as plt
import numpy as np
 
x = np.linspace(1, 100, 20)
y = x *2 +3
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.scatter(x, y)
plt.ion()
for i in range(10):
    y = x*i*0.1 + i
    try:
        ax.lines.remove(lines[0])
    except Exception:
        pass
    lines = ax.plot(x ,y)
    plt.pause(0.1)

猜你喜欢

转载自blog.csdn.net/xiaolin417/article/details/82979517