PySide6 GUI 學習筆記——常用類及控件使用方法(地址類QUrl)

文章目錄

  • 地址類QUrl
    • 主要功能
    • URL 格式介紹
    • 常見 scheme(協議)類型
    • QUrl 類常用方法
    • 常用方法示例
    • 典型應用場景

地址類QUrl

QUrl 是 PySide6.QtCore 模塊中的一個類,用于處理和操作 URL(統一資源定位符)。它可以解析、構建、修改和驗證 URL 字符串,廣泛應用于網絡編程和需要處理地址的場景。

主要功能

  • 解析和構建 URL:可以從字符串創建 QUrl 對象,也可以將 QUrl 對象轉換為字符串。
  • 分解和修改 URL 各部分:如 scheme(協議)、host(主機)、port(端口)、path(路徑)、query(查詢參數)、fragment(片段)等。
  • 編碼與解碼:自動處理 URL 編碼和解碼,保證特殊字符的正確傳遞。
  • 驗證 URL:可以判斷 URL 是否有效(isValid)、是否為本地文件(isLocalFile)等。

URL 格式介紹

QUrl格式

URL(統一資源定位符)通常由以下幾個部分組成:

  • scheme(協議):指定訪問資源所用的協議,如 http、https、ftp、file 等。
  • user(用戶名)password(密碼):可選,部分協議支持在 URL 中包含用戶名和密碼。
  • host(主機):資源所在的服務器地址,可以是域名或 IP 地址。
  • port(端口):可選,指定服務器的端口號,若省略則使用協議的默認端口。
  • path(路徑):資源在服務器上的具體位置。
  • query(查詢參數):可選,提供額外的參數信息,格式為 key=value。
  • fragment(片段):可選,指向資源內部的某個位置,常用于網頁錨點。

一個典型的 URL 格式如下:

scheme://user:password@host:port/path?query#fragment

例如:

https://user:pass@example.com:8080/path/page.html?query=123#section
部分示例值說明
schemehttps協議
useruser用戶名(可選)
passwordpass密碼(可選)
hostexample.com主機
port8080端口(可選)
path/path/page.html路徑
queryquery=123查詢參數(可選)
fragmentsection片段(可選)

常見 scheme(協議)類型

scheme說明
http超文本傳輸協議
https安全超文本傳輸協議
ftp文件傳輸協議
file本地文件
wsWebSocket
wss安全 WebSocket
mailto電子郵件地址
data內嵌數據
smbWindows 共享文件協議
nfs網絡文件系統
ssh安全 Shell 協議
telnet終端網絡傳輸協議
imap電子郵件 IMAP 協議
pop3郵件 POP3 協議
tel電子電話號碼
javascriptJavaScript 腳本
vnc虛擬桌面協議
rtsp實時傳輸流協議
rtmp實時傳輸媒體協議
rmi遠程方法調用協議
ircInternet 聊天協議
gopher互聯網文件傳輸協議
nntp網絡新聞傳輸協議
nc網絡控制協議
sshs安全 Shell 協議
sftp安全文件傳輸協議
rlogin遠程登錄協議
rsync遠程同步協議
rsh遠程 shell 協議
ssh2安全 Shell 協議
MMS多媒體分享協議
ed2keDonkey 電驢網絡傳輸協議
thunder迅雷網絡傳輸協議
FlashgetFlashGet 網絡傳輸協議

不同的 scheme 決定了 URL 的用途和訪問方式,QUrl 支持多種協議,具體可參考官方文檔。

QUrl 類常用方法

  • QUrl():構造一個空的 QUrl 對象。
  • QUrl(string):通過字符串創建 QUrl 對象。
  • isValid():判斷 URL 是否有效。
  • isEmpty():判斷 URL 是否為空。
  • isLocalFile():判斷是否為本地文件路徑。
  • scheme():獲取協議部分(如 http、https)。
  • setScheme(scheme):設置協議部分。
  • host():獲取主機名。
  • setHost(host):設置主機名。
  • port():獲取端口號。
  • setPort(port):設置端口號。
  • userName():獲取用戶名。
  • setUserName(name):設置用戶名。
  • password():獲取密碼。
  • setPassword(password):設置密碼。
  • path():獲取路徑部分。
  • setPath(path):設置路徑部分。
  • query():獲取查詢參數字符串。
  • setQuery(query):設置查詢參數字符串。
  • fragment():獲取片段(錨點)。
  • setFragment(fragment):設置片段。
  • toString():將 QUrl 對象轉換為字符串。
  • fromLocalFile(path):通過本地文件路徑創建 QUrl 對象。
  • toLocalFile():將 QUrl 轉換為本地文件路徑。
  • resolved(relative):合并相對路徑,返回新的 QUrl。

常用方法示例

from PySide6.QtCore import QUrl# 創建 QUrl 對象
url = QUrl("https://www.example.com:8080/path/page.html?query=123#section")# 獲取各部分
print(url.scheme())    # https
print(url.host())      # www.example.com
print(url.port())      # 8080
print(url.path())      # /path/page.html
print(url.query())     # query=123
print(url.fragment())  # section# 修改 URL
url.setHost("www.qt.io")
print(url.toString())  # https://www.qt.io:8080/path/page.html?query=123#section# 檢查有效性
print(url.isValid())   # True# 判斷是否為本地文件
local_url = QUrl.fromLocalFile("C:/Users/Example/file.txt")
print(local_url.isLocalFile())  # True

典型應用場景

  • 網絡請求時構建和解析 URL
  • 處理本地文件路徑與網絡地址的轉換
  • 管理和校驗用戶輸入的地址信息

更多詳細內容可參考官方文檔:QUrl — Qt for Python

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

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

相關文章

GEE:獲取研究區的DEM數據

最近有粉絲追更 GEE 系列,說上次看完 DEM 代碼解析后,自己試著改了一版。今天咱們就來拆解他的優化版代碼 ——基于 SRTM 數據獲取研究區 DEM 并導出,順便聊聊怎么把 GEE 代碼寫得更專業! 先下結論:代碼邏輯完整,3 處細節值得新手抄作業! 這版代碼在數據加載→裁剪→可…

汽車安全 2030 預測 (功能安全FuSa、預期功能安全SOTIF、網絡安全CyberSecurity):成本、效益與行業影響

汽車安全 2030 預測 (功能安全FuSa、預期功能安全SOTIF、網絡安全CyberSecurity):成本、效益與行業影響 到 2030 年,汽車行業將迎來一場安全技術的深度變革,其中 “三重安全防護”(功能安全 FuSa、預期功能安全 SOTIF、網絡安全&…

深入理解設計模式之狀態模式

深入理解設計模式之:狀態模式(State Pattern) 一、什么是狀態模式? 狀態模式(State Pattern)是一種行為型設計模式。它允許一個對象在其內部狀態發生改變時,改變其行為(即表現出不…

Redis的大Key問題如何解決?

大家好,我是鋒哥。今天分享關于【Redis的大Key問題如何解決?】面試題。希望對大家有幫助; Redis的大Key問題如何解決? 1000道 互聯網大廠Java工程師 精選面試題-Java資源分享網 Redis中的“大Key”問題是指某個鍵的值占用了過多…

【STM32開發板】接口部分

一、USB接口 可以看到USBP和USBN與PA12,PA11引腳相接,根據協議,需要添加上拉電阻 二、ADC和DAC 根據原理圖找到可以作為ADC和DAC的引腳 ADC和DAC屬于模擬部分的,所以要接模擬地 三、指示燈電路 找幾個通用的引腳,因為單片機的灌電流比拉電流…

[Hackers and Painters] 讀書筆記 | 設計模式思想 | LISP

目錄 黑客與藝術的關系 “如果你有兩個選擇,就選擇較難的那個“ 金錢不等于財富。創造有價值的東西就是創造財富 項目公式 探討關于優秀程序員的話題 摘抄 保羅格雷厄姆其人其事 人物經歷 圖書介紹 個人作品編輯 譯者序 為什么書呆子不受歡迎 黑客與畫…

Linux基本指令/下

目錄 1.echo、cat與printf 2. > 操作符 與 >> 操作符 3. < 操作符 4.消息傳送 linux文件深入 5.文件類型 6.mv命令 7.時間相關指令 8.查找命令 9.grep命令 10.zip/unzip/tar命令 11.scp命令 12.bc命令 13.uname 指令 14.快捷鍵大全 15.關機/重啟/睡…

Apptrace:APP安全加速解決方案

2021 年&#xff0c;某知名電商平臺在 “618” 大促期間遭遇 DDoS 攻擊&#xff0c;支付系統癱瘓近 2 小時&#xff1b;2022 年&#xff0c;一款熱門手游在新版本上線時因 CC 攻擊導致服務器崩潰。觀察發現&#xff0c;電商大促、暑期流量高峰和年末結算期等關鍵商業周期&#…

NodeJS全棧開發面試題講解——P1Node.js 基礎與核心機制

? 1.1 Node.js 的事件循環原理&#xff1f;如何處理異步操作&#xff1f; 面試官您好&#xff0c;我理解事件循環是 Node.js 的異步非阻塞編程核心。 Node.js 構建在 V8 引擎與 libuv 庫之上。雖然 Node.js 是單線程模型&#xff0c;但它通過事件循環&#xff08;event loop&a…

【深度學習】sglang 的部署參數詳解

SGLang 的部署參數詳解 SGLang(Structured Generation Language)是一個高性能的大語言模型推理框架,專為結構化生成和多模態應用設計。本文將全面介紹SGLang的部署參數,幫助你充分發揮其性能潛力。 ?? SGLang 項目概覽 SGLang是由UC Berkeley開發的新一代LLM推理引擎,…

MATLAB實戰:機器學習分類回歸示例

以下是一個使用MATLAB的Statistics and Machine Learning Toolbox實現分類和回歸任務的完整示例代碼。代碼包含鳶尾花分類、手寫數字分類和汽車數據回歸任務&#xff0c;并評估模型性能。 %% 加載內置數據集 % 鳶尾花數據集&#xff08;分類&#xff09; load fisheriris; X_i…

數組。。。。。

//創建Book 對象&#xff0c;放入相關的屬性private String name;//書名private String[] writer;//作者private List<String> reader;//讀者private Map<String, Object> topics;//評講Book book new Book();book.setName("昆蟲總動員");book.setWrite…

day16 leetcode-hot100-31(鏈表10)

25. K 個一組翻轉鏈表 - 力扣&#xff08;LeetCode&#xff09; 1.模擬法 思路 將這個過程拆解為兩個步驟&#xff0c;第一步將單分組的節點反轉&#xff0c;第二步將反轉后的鏈表加入原鏈表。 針對節點反轉很容易&#xff0c;參考之前的206. 反轉鏈表 - 力扣&#xff08;Le…

測試總結(二)

持續集成 軟件開發實踐 開發提交代碼到gitlab上 自動化構建&#xff08;編譯、打包、部署、自動化測試&#xff09; 盡早發現集成問題 過程&#xff1a; 提交代碼-人工/定時觸發-自動構建-自動部署-構建成功-獲取構建環境信息-郵件通知-自動測試 快速集成、快速反饋、快速解決…

(二)微服務(grpc/grpc消費者)

文章目錄 項目地址一、grpc介紹1.1 項目初始化1. 創建grpc項目2. 項目結構二、Discount grpc創建2.1 實體層1. Coupon實體2.2 Protos1. 創建discount.proto2. 配置proto3. 創建DiscountService4. Program里注冊服務2.3 Seed 數據1. 創建表和Seed數據2. 自動migration2.4 更新Do…

InfluxQL 數據分析實戰:聚合、過濾與關聯查詢全解析

InfluxQL 作為時序數據庫的專用查詢語言&#xff0c;在處理時間序列數據時展現出獨特優勢。本文深入探討 聚合計算、數據過濾和跨測量關聯 三大核心操作&#xff0c;通過真實代碼示例展示如何從海量時序數據中提取關鍵洞察。文中涵蓋從基礎平均值計算到復雜多維度分析的完整流程…

TDengine 運維——巡檢工具(安裝前檢查)

簡介 本文檔旨在介紹 TDengine 安裝部署前后配套的巡檢工具。 相關工具的功能簡介&#xff1a; 工具名稱功能簡介安裝前檢查部署前對 TDengine 安裝部署的依賴要素進行安裝前檢查安裝前預配置部署前對 TDengine 安裝部署的依賴要素進行安裝前預配置安裝部署指定環境安裝部署…

大語言模型(LLM)入門 - (1) 相關概念

文章來自&#xff1a;大語言模型(LLM)小白入門自學項目-TiaoYu-1 GitHub - tiaoyu1122/TiaoYu-1: For People! For Freedom!For People! For Freedom! Contribute to tiaoyu1122/TiaoYu-1 development by creating an account on GitHub.https://github.com/tiaoyu1122/TiaoYu…

LearnOpenGL-筆記-其十一

Normal Mapping 又到了介紹法線貼圖的地方&#xff0c;我感覺我已經寫了很多遍了... 法線貼圖用最簡單的話來介紹的話&#xff0c;就是通過修改貼圖對應物體表面的法線來修改光照效果&#xff0c;從而在不修改物體實際幾何形狀的前提下實現不同于物體幾何形狀的視覺效果。 因…

Spring Boot 讀取.env文件獲取配置

Spring Boot 讀取.env文件獲取配置 在Resouce 目錄下創建.env文件 # DEEP SEEK TOKEN DEEP_SEEK_TOKENyour_deep_seek_key # 阿里云百煉 TOKEN ALI_BAILIAN_TOKENyour_ali_bailian_keyyml引入.env文件 spring:config:import: optional:classpath:.env[.properties]使用.env文…