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

2023年 7月 11日 40.5k 0

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

首先是PyQt5的安装:

pip install PyQt5
pip install pyqt5-tools

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

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

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

  • cmd中输入pyuic5,如果返回“Error: one input ui-file must be specified”说明安装成功。

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

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

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

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

接下来对各个组件添加相应功能。

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

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

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)        

最终效果:

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

气象绘图数据和代码可以参考:

https://cloud.tencent.com/developer/article/1492775?from=article.detail.1616764

来源于我不爱机器学习 ,作者liumo

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论