1.功能:將兩種TXT數據轉換爲圖片,並在界面上顯示。
2.實現
1.qt dessigner上佈局,本次佈局很簡單所以不用多說。
2.pyqt5上信號與槽的使用和代碼編寫
self.chooceTXTPathpushButton.clicked.connect(self.choose_TXTfile) # 信號和槽
self.chooceWavPathpushButton.clicked.connect(self.choose_imagePath) # 信號和槽self.startpushButton.clicked.connect(self.startTran)
我的理解是類似於中斷的觸發一樣的。一般使用 Button 或者Box控件。
3.遇到的問題
1.matplotlib嵌入到pyqt生成圖片
# pyqt5固定調用 matplotlib 的定義類
class MyMplCanvas(FigureCanvas):
def __init__(self, parent=None, width=5, height=4, dpi=100):
fig = Figure(figsize=(width, height), dpi=dpi)
self.axes = fig.add_subplot(111)
FigureCanvas.__init__(self, fig)
self.setParent(parent)
FigureCanvas.setSizePolicy(self,
QSizePolicy.Expanding,
QSizePolicy.Expanding)
FigureCanvas.updateGeometry(self)
# 在 widget 控件中垂直佈局 # 實例化一個FigureCanvasQTAgg對象self.figure1
# 添加布局 ,# 將實例化對象self.figure1添加到垂直佈局layout中
self.layout = QVBoxLayout(self.widget)
self.figure = MyMplCanvas(self.widget, width=7, height=6, dpi=100)
self.layout.addWidget(self.figure)
# 加入圖片數據
self.figure.axes.plot(capture_card_data)
2.刪除佈局中的控件,問題在於不刪除控件,數據一直處在,圖片顯示多個波形圖。
# 清除佈局中的控件
import sip
self.layout.removeWidget(self.figure)
sip.delete(self.figure)
4.結果顯示