Pyqt5 設置保存上一次結果(配置文件)

效果

????????每次打開Pyqt5打包后的程序,默認顯示的是上一次的結果
例如下圖的 文件路徑、表名、類型等

????????

大致的思路

????????Pyqt5自帶的方法QSettings實現保存上一次的設置,其思路是讀取ini文件,如果不存在就是程序的初始狀態,如果存在則可以讀取ini文件里面的內容,開發者可將讀取的內容綁定至具體的控件上,實現每一次運行程序,都是加載上一次的狀態

? ? ? ? 關鍵在于:需要開發者選擇將哪些狀態進行保存和加載
?

用法

????????導入包?

? ? ? ? ? ? ? ? from PyQt5.QtCore import QSettings

????????初始化

????????????????QSettings('myapp.ini', QSettings.IniFormat)

class MyMainForm(QMainWindow, Ui_DownloadImages):def __init__(self, parent=None):super(MyMainForm, self).__init__(parent)self.setupUi(self)self.settings = QSettings('myapp.ini', QSettings.IniFormat)

????????保存結果

????????????????self.settings.setValue(key, value)

input_data = {"file_path": "具體的數據","new_dir_path": "具體的數據","col_list": "具體的數據","sheet_name": "具體的數據",'img_width': "具體的數據",'img_height': "具體的數據","write_to_excel": "具體的數據","write_to_dir": "具體的數據","use_agent": "具體的數據",
}
for key, value in input_data.items():self.settings.setValue(key, value)

????????????????程序會在py文件的同級目錄下生一個ini文件,執行上面的代碼時,就會將對應數據寫入這個ini文件

????????加載文件

????????????????self."具體的控件".setText(self.settings.value(key, value))

# 初始化信息
def init_info(self):# 加載上一次的結果self."具體的控件".setText(self.settings.value('sheet_name', ""))self."具體的控件"t.setText(self.settings.value('file_path', ""))self."具體的控件".setText(self.settings.value('new_dir_path', ""))self."具體的控件".setText(self.settings.value('img_width', "75"))self."具體的控件".setText(self.settings.value('img_height', "75"))col_list = self.settings.value('col_list', [])

????????????????通常會使用一個函數實現加載上一次結果的功能,在程序運行時,執行這個函數即可

補充

????????這里給出幾個比較常用的控件綁定方式

????????復選框

? ? ? ? ????????由于復選框的值,在后端接收的True或False,但是寫入文件確實字符串格式的true或false,所以需要進行格式轉化,將字符串轉為對應的值

write_to_excel = self.settings.value('write_to_excel', True)
write_to_excel = True if write_to_excel == 'true' or write_to_excel != "false" else False
self.writeExcelCheckBox.setChecked(write_to_excel)

????????listWidget

? ? ? ? ? ? ? ? listwidget對象其是一個一個item,所有通過列表的方式,將每一個值都添加進listwidget中

col_list = self.settings.value('col_list', [])
for col_name in col_list:self.listWidget.addItem(col_name)

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

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

相關文章

C++程序中dump文件生成方法詳解

最近項目中新作成了一個動態鏈接庫,長時間運行后,偶爾會崩潰。根據log分析,被調用的動態庫函數最外層catch到了這個異常,但是不能定位哪里出了問題。另外雖然上層exe是有dump文件輸出處理的,但是在C中,如果…

如何利用Python進行數據歸一化?

1. 知識簡介 數據歸一化是數據預處理的一項重要步驟,它對于提高模型性能、加速模型訓練、避免數值計算問題以及提高模型的泛化能力都具有重要作用。進行數據歸一化可以起到以下作用:消除量綱影響,加速模型收斂,提高模型性能&…

硅谷大寬服務器:引領互聯網新時代的核心技術

在當今這個信息爆炸的時代,數據已經成為了企業和個人的重要資產。服務器作為數據的存儲和處理中心,其重要性不言而喻。硅谷大寬服務器以其卓越的性能、穩定的運行和優質的服務,贏得了全球眾多企業和個人的信賴和選擇。 硅谷大寬服務器的特點…

圖解分庫分表

中大型項目中,一旦遇到數據量比較大,小伙伴應該都知道就應該對數據進行拆分了。有垂直和水平兩種。 垂直拆分比較簡單,也就是本來一個數據庫,數據量大之后,從業務角度進行拆分多個庫。如下圖,獨立的拆分出…

Redisson分布式鎖實現原理

Redisson主要解決一下問題 重入問題:重入問題是指 獲得鎖的線程可以再次進入到相同的鎖的代碼塊中,可重入鎖的意義在于防止死鎖,比如HashTable這樣的代碼中,他的方法都是使用synchronized修飾的,假如他在一個方法內&a…

解決Spring Boot應用在Kubernetes上健康檢查接口返回OUT_OF_SERVICE的問題

現象 在將Spring Boot應用部署到Kubernetes上時,健康檢查接口/healthcheck返回的狀態為{"status":"OUT_OF_SERVICE","groups":["liveness","readiness"]},而期望的是返回正常的健康狀態。值得注意的…

VTK物體表面畫貼合線條

1、自由畫線 2、曲線擬合畫線 3、三點閉合曲線

Docker Compose部署微服務項目實戰講解

一、Docker Compose簡介 當需要在多個容器之間協調和管理應用程序時,Docker Compose是一個非常有用的工具。它允許通過一個配置文件來定義、配置和啟動多個 Docker 容器,使得整個應用程序的部署變得更加簡單和一致。以下是 Docker Compose 的一些重要概…

Linux使用寶塔面板+Discuz+cpolar內網穿透工具搭建可公網訪問論壇

Linux寶塔面板搭建Discuz論壇, 并內網穿透實現公網訪問 文章目錄 Linux寶塔面板搭建Discuz論壇, 并內網穿透實現公網訪問前言1.安裝基礎環境2.一鍵部署Discuz3.安裝cpolar工具4.配置域名訪問Discuz5.固定域名公網地址6.配置Discuz論壇 前言 Crossday Di…

【 圖片加載】Vue前端各種圖片引用

文章目錄 一、圖片作為js常量(常作為配置項的值 )1、在線鏈接2、本地圖片 二、圖片img標簽1、一般的src2、動態的src用require3、src可以接收二進制文件blob(如后端返回的、a-upload傳的圖片) 三、背景圖片 一、圖片作為js常量(常…

8款那些年救過我的數據文件恢復軟件 - 誤刪除重要文件的“后悔藥”

無論您在保存備份方面多么小心,災難有時還是會發生。有時您的備份軟件無法按預期運行。 如果您的外部驅動器靠近您的設備,發生火災/洪水/故障時,有時備份會與原始文件一起丟失。即使是云存儲也不能避免故障。 還有一個事實是,我…

C++設計模式之工廠模式(上)——簡單工廠模式

工廠模式 概述簡單工廠模式介紹示例示例使用運行結果缺點 概述 工廠模式屬于一種創建型設計模式。其可以分為簡單工廠模式,工廠模式和抽象工廠模式。工廠模式分為上、中、下三篇,本篇主要介紹簡單工廠模式。 簡單工廠模式 介紹 簡單工廠模式可以理解…

二叉樹題目:具有所有最深結點的最小子樹

文章目錄 題目標題和出處難度題目描述要求示例數據范圍 解法一思路和算法代碼復雜度分析 解法二思路和算法代碼復雜度分析 題目 標題和出處 標題:具有所有最深結點的最小子樹 出處:865. 具有所有最深結點的最小子樹 難度 5 級 題目描述 要求 給定…

HCIP-六、OSPF-2 綜合實驗

六、OSPF-2 綜合實驗 實驗拓撲實驗需求及解法1.設備名稱和部分IP地址已配置2.所有設備運行OSPF,進程號為13.區域間路由匯總4.外部路由匯總5.下發默認路由6. 虛鏈路 實驗拓撲 實驗需求及解法 本實驗模擬OSPF綜合型網絡,按照以下需求完成實驗。 1.設備名…

EventLog Analyzer:強大的日志管理與分析工具

隨著企業網絡規模的擴大和信息系統的復雜化,安全日志管理和分析成為了至關重要的一環。在這個背景下,EventLog Analyzer嶄露頭角,成為一款備受推崇的日志管理與分析工具。本文將介紹EventLog Analyzer的主要特點、功能以及為企業帶來的實際價…

IDEA安裝教程

文章目錄 1 下載IntelliJ IDEA2 安裝3 IDEA配置4 創建項目 1 下載IntelliJ IDEA ? 官方網站上下載最新版本的IntelliJ IDEA。官方網站提供了兩個版本:Community版和Ultimate版。 Community版是免費的,適用于個人和非商業用途。Ultimate版則需要付費購…

Exception in thread “消費者“ java.lang.IllegalMonitorStateException

這兩天學習生產者消費者模型的時候,使用Java線程來實現,出現了一個問題“Exception in thread "消費者" java.lang.IllegalMonitorStateException”,并且,線程不結束。報錯圖片如下: 那我們怎么解決呢&…

競賽選題 題目: 基于深度學習的疲勞駕駛檢測 深度學習

文章目錄 0 前言1 課題背景2 實現目標3 當前市面上疲勞駕駛檢測的方法4 相關數據集5 基于頭部姿態的駕駛疲勞檢測5.1 如何確定疲勞狀態5.2 算法步驟5.3 打瞌睡判斷 6 基于CNN與SVM的疲勞檢測方法6.1 網絡結構6.2 疲勞圖像分類訓練6.3 訓練結果 7 最后 0 前言 🔥 優…

河北專升本(微機原理)

目錄 第一章:計算機基礎與數制轉化 1. 進制運算基礎 2. 常用編碼形式 3. 計算機系統的組成及其工作原理 4. 微機系統主要技術指標 第二章:8086微處理器及其系統 1. 8086微處理器(CPU) 2. 8086的存儲器及I/O組織 3. 8086系…