IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 分享一个简单的pyqt5预测平台 -> 正文阅读

[C++知识库]分享一个简单的pyqt5预测平台

目录

完成展示

一、怎么做

二、使用步骤

1.安装Pycharme

2.安装pyqt5相关组件

3.使用qt5设计界面

5.将设计好的ui生成的py文件后,加入自己的用到算法

6.使用PyInstaller来打包

总结


完成展示

一、怎么做

通过pyqt5界面ui设计,保存为.ui文件,再用工具将其转化为pyhton的.py文件,最后在py文件上添加你的算法,以及ui层面的逻辑连接,就能做到预测啦!

二、使用步骤

1.安装Pycharme

2.安装pyqt5相关组件

这位大佬有详细安装步骤 :?https://blog.csdn.net/zhangziju/article/details/80243858

3.使用qt5设计界面

右键随便点击一个,使用你的qt工具

?添加小控件

?如果你想让你添加的滚动条的数值显示出来,使用这个按钮

?然后链接这两个控件,出现弹窗

?选择QSlider(滑动条)的valueChanged 与 QLabel的setNum(),点击OK。

保存返回至pycharm,对生成的a.ui进行python文件转化

?运行成功后,你的目录下会出现a.py的文件,不管他,然后右键手动创建一个a.py的启动文件run_a.py

?创建run_a.py,后续修改不会影响启动文件,可直接粘贴

if __name__ == '__main__':
 import sys
 from PyQt5.QtWidgets import QApplication, QMainWindow
 import a # 导入添加的资源(根据实际情况填写文件名)
 app = QApplication(sys.argv)
 MainWindow = QMainWindow()
 ui = a.Ui_MainWindow()
 ui.setupUi(MainWindow)
 MainWindow.show()

 sys.exit(app.exec_())

然后右键Run

此时就能滑动滑动条,也能看见数字的变动了

?日期控件也是同理,并且可以互相联系(注意链接函数一定要正确)

?每次操作完成需要保存,然后右键a.ui文件选择pyUIC就会刷新a.py,最后使用run_a.py 启动就行啦

注意,点击控件右侧会出现控件的属性,字体,大小什么的都有,不过建议在生成的a.py中添加属性,以便于后续的多次修改。

5.将设计好的ui生成的py文件后,加入自己的用到算法

?将你最终决定的ui转化为py之后,记得复制粘贴为新的py文件,例如我做的test001.ui转化为了test001.py,然后将test001.py复制为test002.py,然后创建run_test002.py文件来启动。(这一步为了防止你不小心重新将ui转化,覆盖了你后续修改的代码)

多个Check Box的单选,(例如东西南北)

先from xxx import *

?在class中添加如下函数(注意你自己的多个checkBox名字,我这里是checkBox_wind1,2,3,4)对应的东西南北(这样就可以四选一了)

    def  changeCheck1(self):
        if self.checkBox_wind1.checkState() == Qt.Checked:
            self.checkBox_wind2.setChecked(False)
            self.checkBox_wind3.setChecked(False)
            self.checkBox_wind4.setChecked(False)
    def  changeCheck2(self):
        if self.checkBox_wind2.checkState() == Qt.Checked:
            self.checkBox_wind1.setChecked(False)
            self.checkBox_wind3.setChecked(False)
            self.checkBox_wind4.setChecked(False)
    def  changeCheck3(self):
        if self.checkBox_wind3.checkState() == Qt.Checked:
            self.checkBox_wind1.setChecked(False)
            self.checkBox_wind2.setChecked(False)
            self.checkBox_wind4.setChecked(False)
    def  changeCheck4(self):
        if self.checkBox_wind4.checkState() == Qt.Checked:
            self.checkBox_wind1.setChecked(False)
            self.checkBox_wind2.setChecked(False)
            self.checkBox_wind3.setChecked(False)

最后在class中添加一个弹窗控件

    def on_click_messBox(self):

        # 这个模型可以放到此函数外面以免每次点击就会重新计算
        # 但是本次实验数据量小,就懒得操作了

        import matplotlib.pyplot as plt
        plt.rcParams['font.sans-serif'] = ['SimHei']
        plt.rcParams['axes.unicode_minus'] = False
        import pandas as pd
        # 使用本实验误差小的LinearSVR支持向量机核函数
        from sklearn.svm import LinearSVR

        #   导入数据 (数据放在同一py文件下)
        data = pd.read_csv('./data_new.csv', encoding='gbk')
        import random
        
        minweather=self.horizontalSlider_2.value() #获取最低温的值
        maxweather=self.horizontalSlider.value()   #获取最高温的值
        print('最高温',maxweather)
        print('最低温',minweather)

        # 将你四选一的true和flase,作为一个列表,然后通过位置,设置为1,2,3,4的值
        # 获取天气
        weathers=[self.checkBox_weather1.isChecked(),self.checkBox_weather2.isChecked(),
               self.checkBox_weather3.isChecked(),self.checkBox_wind1_5.isChecked()]
        
        print('测试weathers true',weathers.index(True))

        weathernum=weathers.index(True)+1

        print('weathers',weathers) # 获取天气值

        # 将你四选一的true和flase,作为一个列表,然后通过位置,设置为1,2,3,4的值
        # 获取风力
        winds=[self.checkBox_wind1.isChecked(),self.checkBox_wind2.isChecked(),
               self.checkBox_wind3.isChecked(),self.checkBox_wind4.isChecked()]
        print('winds',winds)
        windnum=winds.index(True)+1

        windstrong = self.horizontalSlider_3.value() # 获取风力值
        print('风力',windstrong)

        # 获取月和日
        datemonth=self.dateEdit.date().month()
        print('datemonth',datemonth)
        dateday=self.dateEdit.date().day()
        print('dateday', dateday)

        # 获取到的界面数据

        testxxx=[]
        testxxx.append(weathernum)  # 天气
        testxxx.append(windnum)     #风向
        testxxx.append(windstrong)  # 风力
        testxxx.append(minweather)  # 最低气温
        testxxx.append(maxweather)  # 最高气温
        testxxx.append(datemonth)  # 月
        testxxx.append(dateday)  # 日
        print('test_xxx',testxxx)
        
        # 划分数据集
        x_train = data.iloc[:200, 1:]
        x_test = data.iloc[200:, 1:]
        y_train = data.iloc[:200, :1]
        y_test = data.iloc[200:, :1]
        
        # 模型训练
        clf = LinearSVR(C=1)
        clf.fit(x_train, y_train)
        
        # 数据代入
        y_pred = clf.predict([testxxx])

        print('y_pred',y_pred)
        stry = str(y_pred.tolist()[0])

        # 创建弹窗属性
        messBox = QMessageBox()
        messBox.setStyleSheet(
            "QLabel{"
            "min-width: 200px;"
            "min-height: 100px;"
            "}"
        )
        messBox.setWindowTitle(u'预测电荷值为')
        messBox.setText(stry)
        messBox.exec_()

最后运行run_test002.py,选择好你所选择需要的参数,点击开始,即可出现预测值弹窗

6.使用PyInstaller来打包

pip install PyInstaller

pyinstaller -F -w xxx.py? ?(xxx.py即为你需要启动的py文件)例如本次实验的run_test002.py

(此方法直接打包为exe文件)

想要打包为其它类型:

可参考参数:https://blog.csdn.net/weixin_39000819/article/details/80942423


总结

此方法供大家参考,相比之下,没有使用到太多的函数,我也是个初学者,希望大家有意见可以提出来,嘿嘿。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-22 13:57:27  更:2021-07-22 13:59:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/2 1:02:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码