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)