今天尝试下气象绘图与PyQt5
结合。
首先是PyQt5
的安装:
pip install PyQt5
pip install pyqt5-tools
可以通过下面若干可选的操作来检查是否已经安装成功:
Win+S
呼出Cornata主面板(搜索框),输入designer
,如果看到跟下图类似的结果说明PyQt Designer已经被安装。
- 在
cmd
中输入pyuic5
,如果返回“Error: one input ui-file must be specified”
说明安装成功。
designer
打开后就可以创建画布啦,具体设计如下:
设计好之后就可以直接生成代码了,当然也可以自己写代码:
pyuic5 -o ./meteo.py ./metep.ui
此外还需创建一个调用文件:
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
import meteo
if __name__ == '__main__':
app = QApplication(sys.argv)
MainWindow = QMainWindow()
ui = meteo.Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
然后运行main.py
,就可以看到刚刚编写的GUI。
相关步骤可以参考:
https://blog.csdn.net/AzureMouse/article/details/90338961
接下来对各个组件添加相应功能。
- 选择文件按钮和显示文件名:
在meteo.py
里添加相应代码:
def choose_file(self):
self.filename, filetype = QtWidgets.QFileDialog.getOpenFileName(None, "选择文件",os.getcwd(),"All Files(*);;Text Files(*.txt)")
self.textEdit.setText(self.filename)
- 绘图按钮和展示图片
def plot_fig(self):
svpath = plot_temp(self.filename)
frame = QImage(svpath)
pix = QPixmap.fromImage(frame)
item = QGraphicsPixmapItem(pix)
item.setScale(0.5)
self.scene = QGraphicsScene()
self.scene.addItem(item)
self.graphicsView.setScene(self.scene)
self.pix= pix
- 保存按钮
def save(self):
pix = self.pix
filename, _ = QtWidgets.QFileDialog.getSaveFileName(None, "保存文件",os.getcwd(),"Image Files(*.png)")
pix.save(filename)
- 在
setupUi
中添加回调函数:
######### pushButton按钮点击事件回调函数#########
self.pushButton.clicked.connect(self.choose_file)
self.pushButton_2.clicked.connect(self.plot_fig)
self.pushButton_3.clicked.connect(self.save)
最终效果:
气象绘图数据和代码可以参考:
https://cloud.tencent.com/developer/article/1492775?from=article.detail.1616764
来源于我不爱机器学习 ,作者liumo