《PyQt5》——設計Python GUI(圖形用戶界面)實例

PyQt5

PyQt5的配置和基礎使用可以參考這篇文章:《 PyQt5》—— 創建 Python GUI(圖形用戶界面)

Python GUI(圖形用戶界面)實例

本實例是設計一個通過玉米和豆粕的價格來預測生豬的價格,并顯示預測價格與實際價格波動情況。
如圖最終結果:在這里插入圖片描述
開始設計:1、創建一個新的在這里插入圖片描述

四個標簽:分別用來顯示名稱和對照表。注意顯示對照表的標簽大小要和照片的大小相同或者比照片大用來顯示照片的全部內容。

在這里插入圖片描述

在這里插入圖片描述

三個文本框:

在這里插入圖片描述

在這里插入圖片描述

三個點擊鍵:

在這里插入圖片描述

函數設計

在這里插入圖片描述
如圖進行設計:清除鍵用來清除文本內的內容,預測鍵和打開參照表鍵來寫外部函數。

完成后,將qt文件進行保存。

使用

將UI文件轉化為py文件:
在這里插入圖片描述

需要的文件:

在這里插入圖片描述

  • 均價數據:通過網盤分享的文件:均價數據.xlsx
    鏈接: https://pan.baidu.com/s/1a9Ir9UmgBcGNHhL8DqaRUA 提取碼: cyw9
模型訓練和保存本地
import numpy as np
from sklearn.tree import DecisionTreeRegressor
import joblib
import pandas as pd
from sklearn.model_selection import train_test_splitdef train_tree():data = pd.read_excel('均價數據.xlsx')# 標準化# from sklearn.preprocessing import StandardScaler# scaler = StandardScaler()# data['玉米'] = scaler.fit_transform(data[['玉米']])# data['豆粕'] = scaler.fit_transform(data[['豆粕']])x = data.iloc[:, 1:-1]y = data.iloc[:, -1]# 數據切分x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=1)# 創建決策樹分類器對象tree = DecisionTreeRegressor()tree.fit(x_train, y_train)# 保存模型joblib.dump(tree, 'tree_model.pkl')if __name__ == '__main__':train_tree()loaded_model = joblib.load('tree_model.pkl')print(loaded_model.predict(np.array([[2752,4383]])))

結果:在這里插入圖片描述

使用
# 導入joblib庫,用于模型的保存和加載
import joblib
# 導入NumPy庫,用于進行高效的數值計算
import numpy as np
# 導入PyQt5的主要模塊,用于創建圖形用戶界面(GUI)
from PyQt5 import QtCore, QtGui, QtWidgets  
# 導入QtCore模塊的所有內容,QtCore包含了核心的非GUI功能,如信號與槽機制、線程等
from PyQt5.QtCore import *                 
# 導入QtGui模塊的所有內容,QtGui包含了圖形和多媒體相關的功能
from PyQt5.QtGui import *                  
# 導入QtWidgets模塊中的一些特定類
from PyQt5.QtWidgets import QFileDialog, QMainWindow, QMessageBox  
'''
QFileDialog可以幫助用戶選擇文件路徑
QMainWindow則是創建具有菜單、工具欄和狀態欄的主窗口的起點。
QMessageBox可以用于向用戶顯示提示或警告信息
'''# 導入UI類,這個類包含了主窗口的設計,通常由Qt Designer生成
from untitled3 import Ui_MainWindow  
# 導入系統模塊,用于訪問命令行參數和系統相關功能,如退出應用程序
import sys   # 定義一個繼承自QMainWindow和Ui_MainWindow的類,作為主窗口的入口類
class PyQtMainEntry(QMainWindow, Ui_MainWindow):  def __init__(self):  # 構造函數,在創建類的實例時自動調用# 調用基類QMainWindow的構造函數進行初始化super().__init__()  # 調用setupUi方法,根據Ui_MainWindow設計設置界面,將設計好的UI應用到主窗口上self.setupUi(self)  # 使用joblib加載預訓練好的模型,這里加載的是名為'tree_model.pkl'的模型文件self.model = joblib.load('tree_model.pkl')'''定義要觸發的函數'''# 定義預測價格的函數,當用戶點擊相關按鈕時會調用此函數def predict_price(self):try:# 獲取用戶在第一個輸入框(lineEdit)中輸入的玉米價格,并將其轉換為整數corn_price = int(self.lineEdit.text())# 獲取用戶在第二個輸入框(lineEdit_2)中輸入的大豆價格,并將其轉換為整數soybean_price = int(self.lineEdit_2.text())# 使用加載的模型對輸入的玉米價格和大豆價格進行預測,將輸入數據轉換為NumPy數組predicted_price = self.model.predict(np.array([[corn_price, soybean_price]]))# 將預測結果顯示在第三個輸入框(lineEdit_3)中,只取預測結果數組的第一個元素self.lineEdit_3.setText(str(predicted_price[0]))except ValueError:# 如果用戶輸入的不是有效的整數,彈出警告消息框提示用戶輸入有效的價格QMessageBox.warning(self, '錯誤', '請輸入有效的價格')# 定義顯示圖表的函數,當用戶點擊相關按鈕時會調用此函數def showbiao(self):try:# 使用QPixmap加載名為'Figure_1.png'的圖片文件pixmap = QPixmap('Figure_1.png')# 將加載的圖片顯示在名為label_4的標簽上self.label_4.setPixmap(pixmap)except Exception as e:# 如果加載圖片過程中出現錯誤,打印錯誤信息print('Error loading image:', e)# 程序的入口點,當直接運行該腳本時會執行以下代碼
if __name__ == "__main__":# 創建應用程序實例,sys.argv是命令行參數列表,用于傳遞啟動參數給應用程序app = QtWidgets.QApplication(sys.argv)  # 創建主窗口實例window = PyQtMainEntry()  # 顯示主窗口window.show()  # 進入應用程序的事件循環,等待用戶操作,直到用戶關閉窗口或程序退出# sys.exit用于確保在退出時進行清理工作sys.exit(app.exec_())  

結果:在這里插入圖片描述
輸入內容和按鍵進行使用。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/71830.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/71830.shtml
英文地址,請注明出處:http://en.pswp.cn/web/71830.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

kali linux 打開 word

Kali Linux是一款專為網絡安全領域而設計的操作系統,它集成了大量的安全工具,幫助用戶進行網絡滲透測試和安全評估。作為一款功能強大的操作系統,Kali Linux可以滿足用戶在網絡安全領域的各種需求,包括滲透測試、漏洞分析、數字取…

hooks useModule自定義hooks (二次封裝AgGridReact ag-table)自定義表頭,自定義表頭搜索

場景業務: 多次運用AgGridReact的table 列表 思路: 運用自定義hooks進行二次封裝: 通用配置例如:傳參的參數,傳參的url,需要緩存的key這些鍵值類 定制化配置例如:需要對table 的一些定制化傳…

SpringBoot最簡單方式實現自定義異常頁面(404)

最簡單的方式實現所有自定義異常頁面(如 404、500 等)是通過 靜態資源文件 或 模板引擎 來實現。 方法 1:使用靜態資源文件(最簡單) Spring Boot 默認會在 src/main/resources/static 或 src/main/resources/public …

django下防御race condition漏洞(競爭型漏洞)

目錄 競爭型漏洞 概念 常見類型及示例 環境搭建 ?編輯漏洞復現 ucenter/1/ ucenter/2/ ucenter/3/ ucenter/4/ 總結 悲觀鎖 樂觀鎖 競爭型漏洞 概念 競爭型漏洞,也稱為競態條件漏洞(Race Condition Vulnerability),…

用Python寫一個算24點的小程序

一、運行界面 二、顯示答案——遞歸介紹 工作流程&#xff1a; 1. 基本情況&#xff1a;函數首先檢查輸入的數字列表 nums 的長度。如果列表中只剩下一個數字&#xff0c;它會判斷這個數字是否接近 24&#xff08;使用 abs(nums[0] - 24) < 1e-10 來處理浮點數精度問題&…

PostgreSQL 18新特性之虛擬生成列

PostgreSQL 12 提供了生成列&#xff08;GENERATED ALWAYS AS STORED&#xff09;功能&#xff0c;但是只能支持存儲型的生成列&#xff0c;需要占用存儲空間&#xff0c;更新成本高。 為此&#xff0c;PostgreSQL 18 即將引入一個新的增強&#xff1a;虛擬生成列。這種類型的…

GitHub上傳項目

總結&#xff08;有基礎的話直接執行這幾步&#xff0c;就不需要再往下看了&#xff09;&#xff1a; git init 修改git的config文件&#xff1a;添加:[user]:name你的github用戶名 email你注冊github的用戶名 git branch -m master main git remote add origin 你的URL gi…

常見排序算法深度評測:從原理到10萬級數據實戰

常見排序算法深度評測&#xff1a;從原理到10萬級數據實戰 摘要 本文系統解析冒泡排序、選擇排序、插入排序、希爾排序、歸并排序、快速排序、堆排序和基數排序8種經典算法&#xff0c;通過C語言實現10萬隨機數排序并統計耗時。測試顯示&#xff1a;快速排序綜合性能最優&…

動態規劃填表技巧:固定最后一個數 vs 固定倒數第二個數

在動態規劃中&#xff0c;填表時固定最后一個數還是倒數第二個數&#xff0c;取決于問題的定義和狀態轉移方程的設計。 目錄 1. 固定最后一個數 適用場景 特點 示例 2. 固定倒數第二個數 適用場景 特點 示例 3. 固定最后一個數與倒數第二個數的對比 4. 總結 1. 固定最…

【C】鏈式二叉樹算法題2

目錄 1 另一棵樹的子樹 1&#xff09; 題目描述 示例1&#xff1a; 示例2&#xff1a; 2&#xff09; 算法解析 3&#xff09; 代碼 2 二叉樹的遍歷 1&#xff09; 問題描述 2&#xff09; 算法解析 3&#xff09; 代碼 3 總結 1 另一棵樹的子樹 leetcode鏈接…

配置Hadoop集群

Hadoop的運行模式 本地運行&#xff1a;在一臺單機上運行&#xff0c;沒有分布式文件系統&#xff0c;直接讀寫本地操作系統的文件系統。特點&#xff1a;不對配置文件進行修改&#xff0c;Hadoop 不會啟動 偽分布式&#xff1a;也是在一臺單機上運行&#xff0c;但用不同的 …

python辦公自動化--數據可視化(pandas+matplotlib)--生成條形圖和餅狀圖

前言 前幾天我們學習了pandas讀取數據&#xff0c;還學習了如何用patplotlib繪制柱狀圖和折線圖。 今天我們繼續學習&#xff0c;如何繪制條形圖和餅狀圖。 一、課程回顧-pandas讀取數據 1.示例數據文件 這里我們用到的依舊是d盤底下的這個excel工作簿&#xff0c;這個工作簿…

基于大模型的結節性甲狀腺腫診療全流程預測與方案研究報告

目錄 一、引言 1.1 研究背景與目的 1.2 研究意義 1.3 國內外研究現狀 二、大模型預測原理與方法 2.1 相關大模型概述 2.2 數據收集與預處理 2.3 模型訓練與驗證 三、術前預測與評估 3.1 結節性質預測 3.1.1 良惡性判斷 3.1.2 與傳統診斷方法對比 3.2 手術風險預測…

不同開發語言對字符串的操作

一、字符串的訪問 Objective-C: 使用 characterAtIndex: 方法訪問字符。 NSString *str "Hello, World!"; unichar character [str characterAtIndex:0]; // 訪問第一個字符 H NSLog("%C", character); // 輸出: H NSString 內部存儲的是 UTF-16 編…

Java開發者如何接入并使用DeepSeek

目錄 一、準備工作 二、添加DeepSeek SDK依賴 三、初始化DeepSeek客戶端 四、數據上傳與查詢 五、數據處理與分析 六、實際應用案例 七、總結 【博主推薦】&#xff1a;最近發現了一個超棒的人工智能學習網站&#xff0c;內容通俗易懂&#xff0c;風格風趣幽默&#xff…

S19文件格式詳解:汽車ECU軟件升級中的核心鏡像格式

文章目錄 引言一、S19文件格式的起源與概述二、S19文件的核心結構三、S19在汽車ECU升級中的應用場景四、S19與其他格式的對比五、S19文件實例解析六、工具鏈支持與安全考量七、未來趨勢與挑戰結語引言 在汽車電子控制單元(ECU)的軟件升級過程中,S19文件(也稱為Motorola S-…

CTF雜項——[suctf 2019]簽到題

base64轉圖片 可以直接用隨波逐流 得到flag SUCTF{ffffffffT4nk}

【Python】整數除法不正確,少1的問題,以及有關浮點數轉換的精度問題

1. 問題 今天在做leetcode 不同路徑 的時候發現了個問題 對于m53 n4class Solution:def uniquePaths(self, m: int, n: int) -> int:rlt 1for i in range(0, m-1):rlt * (m n - 2 - i)for i in range(0, m-1):rlt / (i 1)return int(rlt)為什么這個結果是 26234class S…

AI無代碼平臺

以下是目前支持快速開發產品的高生產力免費AI無代碼平臺推薦&#xff0c;按功能和適用場景分類&#xff1a; 一、全棧應用開發類 Bolt.DIY DeepSeek-R1 無需編寫代碼即可開發全棧應用&#xff0c;提供免費API和無速率限制&#xff0c;支持AI編碼助手與自動化流程 。 優勢&…

Gini系數的應用 - 指標波動貢獻分析

基尼系數的定義 基尼系數是衡量數據分布不均衡程度的指標&#xff0c;取值范圍在0到1之間&#xff1a; 0 表示完全均衡&#xff08;所有值相等&#xff09;。1 表示完全不均衡&#xff08;所有值集中在一個點&#xff09;。 基尼系數的計算公式 假設有 n n n 個數據點&…