气象绘图与PyQt5结合…附数据和代码参考

2023-06-0516:17:28编程语言入门到精通Comments1,236 views字数 1830阅读模式

今天尝试下气象绘图与PyQt5结合。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/44892.html

首先是PyQt5的安装:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/44892.html

pip install PyQt5
pip install pyqt5-tools

可以通过下面若干可选的操作来检查是否已经安装成功:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/44892.html

  • Win+S呼出Cornata主面板(搜索框),输入designer,如果看到跟下图类似的结果说明PyQt Designer已经被安装。

气象绘图与PyQt5结合…附数据和代码参考
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/44892.html
  • cmd中输入pyuic5,如果返回“Error: one input ui-file must be specified”说明安装成功。

designer打开后就可以创建画布啦,具体设计如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/44892.html

气象绘图与PyQt5结合…附数据和代码参考
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/44892.html

设计好之后就可以直接生成代码了,当然也可以自己写代码:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/44892.html

pyuic5 -o ./meteo.py ./metep.ui

此外还需创建一个调用文件:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/44892.html

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://www.cainiaoxueyuan.com/ymba/44892.html

相关步骤可以参考:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/44892.html

https://blog.csdn.net/AzureMouse/article/details/90338961文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/44892.html

接下来对各个组件添加相应功能。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/44892.html

  • 选择文件按钮和显示文件名:

气象绘图与PyQt5结合…附数据和代码参考
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/44892.html

meteo.py里添加相应代码:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/44892.html

    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://www.cainiaoxueyuan.com/ymba/44892.html

气象绘图与PyQt5结合…附数据和代码参考
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/44892.html

气象绘图数据和代码可以参考:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/44892.html

https://cloud.tencent.com/developer/article/1492775?from=article.detail.1616764文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/44892.html

来源于我不爱机器学习 ,作者liumo文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/44892.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/ymba/44892.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定