PyQt學習記錄

PyQt學習記錄

要在界面上 創建一個控件,就需要在程序代碼中 創建 這個 控件對應類 地一個 實例對象。

在Qt系統中,控件(widget)是 層層嵌套 的,除了最頂層的控件,其他的控件都有父控件。

幾個函數

函數move()可以決定一個控件顯示的位置
函數resize()可以決定一個控件顯示的大小

界面處理動作signal和slot(信號槽)

當界面上的一個控件被操作時,就會發出 信號,英文叫 signal,表明一個事件發生了。

我們可以預先在代碼中指定處理這個 signal 的函數,這個處理 signal 的函數叫做 slot。

Qt Desinger的使用

Qt Desinger是一個可視化工具,可以方便地構建Qt界面。

使用該工具構建界面后,生成.ui文件

Layout布局共有四種,使得界面內容按我們需要進行空間自動適配。

只有整體進行布局之后,整體才會適配,布局時至少選擇兩個控件才可以。

使用Layout布局后可能需要進行微調,因為有些控件的大小可能會發生變化。

控件QWidget屬性中的sizePolicy主要決定了其縮放策略:
水平策略控制某個控件在一個布局中的伸展程度
水平伸展控制一個布局中,各控件所占大小
(垂直同理)

Spacers可以在控件之間增加空格,靈活調整間距

如何構造理想布局?

  1. 先不用Layout,使用Groupbox把大致位置擺放好
  2. 布局從小到大,由內層到外層
  3. 調整大小比例,優先使用Layout的layoutStrentch屬性來控制內部控件所占空間比例

如何正式發布程序

使用PyInstaller
安裝pip install pyinstaller
執行pyinstaller xxx.py --noconsole --hidden-import PySide6.QtXml
即可
這樣就會在當前目錄下產生一個名為 dist 的目錄。里面就有一個名為 xxx 的目錄,我們的可執行程序 xxx.exe 就在里面。
其中
–noconsole 指定不要命令行窗口,否則我們的程序運行的時候,還會多一個黑窗口。 但是我建議大家可以先去掉這個參數,等確定運行成功后,再加上參數重新制作exe。因為這個黑窗口可以顯示出程序的報錯,這樣我們容易找到問題的線索。
–hidden-import PySide6.QtXml 參數是因為這個 QtXml庫是動態導入,PyInstaller沒法分析出來,需要我們告訴它

設置圖標

from PyQt6.QtGui import QIcon
app.setWindowIcon(QIcon('logo.jpg'))

樣式QSS

QSS selector語法 幾乎 和 Web CSS 的 selector語法沒有什么區別

selector:設置哪些特征元素的顯示效果
declaration:具體的效果,顏色、大小等

多線程

兩種實現方法

  • Python多線程
  • PyQt多線程

界面美化

通過 提升控件 來使用 QFluentWidgets

右擊一個小部件,選擇右擊菜單上的 提升為…

提升為 的作用是把原生部件替換成自定義小部件,在例子中是 qfluentwidgets.PushButton。

彈出的對話框上需要填寫自定義的組件名。頭文件是組件庫的包名 qfluentwidgets,提升的類名稱為 PushButton

完成提升后不會在設計師中看到任何變化,保存 ui 文件后運行 py 代碼,可以發現 import 的是 PushButton

在這里插入圖片描述

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

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

相關文章

react: styled-components實現原理 標簽模版

styled-components是針對react中一個前端廣泛使用的css-in-js樣式庫B站 利用標簽模版 利用ES6中的 標簽模版文檔標簽模板其實不是模板,而是函數調用的一種特殊形式。“標簽”指的就是函數,緊跟在后面的模板字符串就是它的參數。 let a 5; let b 10;…

網絡安全應急響應之文件痕跡排查:從犯罪現場到數字狩獵的進化論

凌晨3點,某金融企業的服務器突然告警,核心數據庫出現未知進程訪問。安全團隊緊急介入時,攻擊者已抹去日志痕跡。在這場與黑客的時間賽跑中,文件痕跡排查成為破局關鍵。本文將帶您深入數字取證的"案發現場",揭…

多模態大語言模型arxiv論文略讀(七)

MLLM-DataEngine: An Iterative Refinement Approach for MLLM ?? 論文標題:MLLM-DataEngine: An Iterative Refinement Approach for MLLM ?? 論文作者:Zhiyuan Zhao, Linke Ouyang, Bin Wang, Siyuan Huang, Pan Zhang, Xiaoyi Dong, Jiaqi Wang,…

idea插件:AICommit,智能生成Git提交信息

AICommit:智能生成Git提交信息的IDEA插件指南 一、AICommit插件介紹 AICommit是一款專為開發者設計的IntelliJ IDEA插件,它利用人工智能技術自動生成清晰、規范的Git提交信息(Commit Message)。該插件能夠分析你的代碼變更,理解修改的上下文…

js 拷貝-包含處理循環引用問題

在 JavaScript 中,拷貝對象和數組時需要特別注意,因為對象和數組是引用類型,直接賦值只會復制引用,而不是實際的數據。以下是幾種常見的拷貝方法及其應用場景: 1. 淺拷貝(Shallow Copy) 淺拷貝…

oracle將varchar2 轉為clob類型存儲。 oracle不支持直接使用sql,將 varchar2 到clob的類型轉換,需要下面操作

將一個現有表中的 VARCHAR2 列數據遷移到一個 CLOB 列的過程。以下是對每一步操作的說明: 1. 添加一個新的 CLOB 類型列 首先,向表中添加一個新的 CLOB 類型的列。這個列將用來存儲原本的 VARCHAR2 數據。 ALTER TABLE your_table ADD (new_column CL…

Dynamics 365 Business Central Recurring Sales Lines 經常購買銷售行 來作 訂閱

#D365 BC ERP# #Navision# 前面有節文章專門介紹了BC 2024 Wave 2 支持的更好的Substription & Recurring Billing。 其實在D365 BC ERP中一直有一個比較簡單的訂閱模塊Recrring Sales Lines。本文將介紹一下如何用Recurring Sales Lines來 實施簡易的訂閱Substription。具…

算法比賽中常用的數學知識

一、求某個整數的正約數個數與正約數之和 1.1求某個正整數N的正約數個數 public class Main {public static void main(String[] args) {System.out.println(count(360));//結果為24}public static long count(long number){long count1;for(long i2;i<Math.sqrt(number);…

虛擬Ubuntu系統 開機提示:SMBus Host controller not enabled 后正常啟動,去除這個提示提升開機速度。

如題&#xff0c;虛擬機中的Ubuntu系統開機提示&#xff1a;SMBus Host controller not enabled&#xff0c;雖然能正常啟動&#xff0c;但不僅影響開機速度&#xff0c;而且還膈應人。 使用命令查看模塊 lsmod | grep piix4 發現i2c_piix4有問題&#xff0c; 禁止 i2c_piix4…

NLP基礎知識 與 詞向量的轉化方法 發展

目錄 1.NLP 基礎知識點 為什么需要自然語言處理? 自然語言處理有哪些分類? 自然語言處理有哪些實際應用? 為什么需要自然語言處理? 自然語言處理有哪些分類? 自然語言處理有哪些實際應用? 自然語言處理的技術/工作原理是什么? 2.NLP文本轉化為詞向量的方法 2…

【FPGA基礎學習】狀態機思想實現流水燈

目錄 一、用狀態機實現LED流水燈1.狀態機思想簡介1. 1基本概念1.2.核心要素1.3分類與模型 2.LED流水燈 二、CPLD與FPGA1.技術區別2.應用場景3.設計選擇建議 三、HDLbits組合邏輯題目 一、用狀態機實現LED流水燈 1.狀態機思想簡介 1. 1基本概念 ? 狀態機&#xff08;Finite …

CSS語言的游戲AI

CSS語言的游戲AI探討 隨著技術的飛速發展&#xff0c;游戲行業也在不斷地革命和演變。游戲中的人工智能&#xff08;AI&#xff09;作為一種重要的設計元素&#xff0c;其復雜性和智能程度對游戲的體驗、玩法和整體表現都有著深遠的影響。近年來&#xff0c;CSS&#xff08;Ca…

docker配置redis容器時配置文件docker-compose.yml示例

1.配置數據節點&#xff08;主從節點&#xff09; version: 3.7 services:master:image: redis:5.0.9container_name: redis-masterrestart: alwayscommand: redis-server --appendonly yesports:- 6379:6379slave1:image: redis:5.0.9container_name: redis-slave1restart: a…

【WPF】IOC控制反轉的應用:彈窗但不互相調用ViewModel

全稱&#xff1a;Inversion of Control&#xff0c;控制反轉 場景&#xff1a;A頁面需要調用B/C頁面等&#xff0c;防止直接在VM中新建別的頁面實例&#xff0c;使用IOC設計架構&#xff1b; 創建Service&#xff0c;在Service中實現頁面的實例創建和定義頁面輸入輸出參數。 在…

MySQL學習筆記十五

第十七章組合查詢 17.1組合查詢 MySQL允許執行多個查詢&#xff08;多條SELECT語句&#xff09;&#xff0c;并將結果作為單個查詢結果集返回。這些組合查詢通常稱為并&#xff08;union&#xff09;或復合查詢&#xff08;compound query&#xff09;。 以下幾種情況需要使…

【MySQL】安裝

下載 MySQL :: MySQL Downloads 安裝 mysql 驗證

ffpyplayer+Qt,制作一個視頻播放器

ffpyplayerQt&#xff0c;制作一個視頻播放器 項目地址FFmpegMediaPlayerVideoWidget 項目地址 https://gitee.com/chiyaun/QtFFMediaPlayer FFmpegMediaPlayer 按照 QMediaPlayer的方法重寫一個ffpyplayer # coding:utf-8 import logging from typing import Unionfrom PySide…

Spring Boot 國際化配置項詳解

Spring Boot 國際化配置項詳解 1. 核心配置項分類 將配置項分為以下類別&#xff0c;便于快速定位&#xff1a; 1.1 消息源配置&#xff08;MessageSource 相關&#xff09; 控制屬性文件的加載、編碼、緩存等行為。 配置項作用默認值示例說明spring.messages.basename指定屬…

拍攝的婚慶視頻有些DAT的視頻文件打不開怎么辦

3-12 現在的婚慶公司大多提供結婚的拍攝服務&#xff0c;或者有一些第三方公司做這方面業務&#xff0c;對于視頻拍攝來說&#xff0c;有時候會遇到這樣一種問題&#xff0c;就是拍攝下來的視頻文件&#xff0c;然后會有一兩個視頻文件是損壞的&#xff0c;播放不了&#xff0…

【力扣hot100題】(073)數組中的第K個最大元素

花了兩天時間搞明白答案的快速排序和堆排序。 兩種都寫了一遍&#xff0c;感覺堆排序更簡單很多。 兩種都記錄一下&#xff0c;包括具體方法和易錯點。 快速排序 class Solution { public:vector<int> nums;int quicksort(int left,int right,int k){if(leftright) r…