前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >当气象绘图碰上PyQt5...

当气象绘图碰上PyQt5...

作者头像
自学气象人
发布2023-06-21 16:02:52
发布2023-06-21 16:02:52
25600
代码可运行
举报
文章被收录于专栏:自学气象人自学气象人
运行总次数:0
代码可运行

今天尝试下气象绘图与PyQt5结合。

首先是PyQt5的安装:

代码语言:javascript
代码运行次数:0
运行
复制
pip install PyQt5
pip install pyqt5-tools

可以通过下面若干可选的操作来检查是否已经安装成功:

  • Win+S呼出Cornata主面板(搜索框),输入designer,如果看到跟下图类似的结果说明PyQt Designer已经被安装。
  • cmd中输入pyuic5,如果返回“Error: one input ui-file must be specified”说明安装成功。

designer打开后就可以创建画布啦,具体设计如下:

设计好之后就可以直接生成代码了,当然也可以自己写代码:

代码语言:javascript
代码运行次数:0
运行
复制
pyuic5 -o ./meteo.py ./metep.ui

此外还需创建一个调用文件:

代码语言:javascript
代码运行次数:0
运行
复制
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里添加相应代码:

代码语言:javascript
代码运行次数:0
运行
复制
    def choose_file(self): 
        self.filename, filetype = QtWidgets.QFileDialog.getOpenFileName(None, "选择文件",os.getcwd(),"All Files(*);;Text Files(*.txt)")
        self.textEdit.setText(self.filename)
  • 绘图按钮和展示图片
代码语言:javascript
代码运行次数:0
运行
复制
    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
  • 保存按钮
代码语言:javascript
代码运行次数:0
运行
复制
    def save(self):     
        pix = self.pix
        filename, _ = QtWidgets.QFileDialog.getSaveFileName(None, "保存文件",os.getcwd(),"Image Files(*.png)")
        pix.save(filename)    
  • setupUi中添加回调函数:
代码语言:javascript
代码运行次数:0
运行
复制
        ######### 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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-05-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 自学气象人 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档