PySide6 GUI 学习笔记——常用类及控件使用方法(地址类QUrl)

article/2025/7/31 8:55:35

文章目录

  • 地址类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.hkcw.cn/article/UAegPUGAFD.shtml

相关文章

DAY40 训练和测试

昨天我们介绍了图像数据的格式以及模型定义的过程,发现和之前结构化数据的略有不同,主要差异体现在2处 模型定义的时候需要展平图像由于数据过大,需要将数据集进行分批次处理,这往往涉及到了dataset和dataloader来规范代码的组织…

彻底理解Spring三级缓存机制

文章目录 前言一、Spring解决循环依赖时,为什么要使用三级缓存? 前言 Spring解决循环依赖的手段,是通过三级缓存: singletonObjects:存放所有生命周期完整的单例对象。(一级缓存)earlySingleto…

Diffusion Planner:扩散模型重塑自动驾驶路径规划(ICLR‘25)

1. 概述 2025年2月14日,清华大学AIR智能产业研究院联合毫末智行、中科院自动化所和香港中文大学团队,在ICLR 2025会议上发布了Diffusion Planner——一种创新性的基于Diffusion Transformer的自动驾驶规划模型架构。该系统联合建模周车运动预测与自车行…

财管5-投资项目的评价指标现金流量构成

一、投资项目评价指标 独立项目评价指标包括净现值(NPV)、现值指数(PI)、内含报酬率(IRR)、回收期(PP)、会计报酬率; 1、净现值 计算NPV 未来现金流量的现值 - 原始投…

【Bluedroid】蓝牙启动之 l2c_init 源码解析

蓝牙 L2CAP(逻辑链路控制和适配协议)层是蓝牙协议栈的核心传输层,负责为上层协议(如 ATT、SMP、GATT)提供逻辑通道、服务路由和流量控制等关键功能。本文围绕 L2CAP 层的五大核心数据结构(全局控制块tL2C_C…

NACOS 配置中心--数据隔离

1.实现效果 名称空间 -- 区分 多套环境 group 分组 -- 区分多种微服务 data id 数据集 -- 区分多种配置 2.新建命名空间 3.创建 group 和 data id 同逻辑 创建 test 和prod 环境配置 5.yml文件配置进行映射 server:port: 8000 spring:config:import: # 映射data id 和gro…

rtpmixsound:实现音频混音攻击!全参数详细教程!Kali Linux教程!

简介 一种将预先录制的音频与指定目标音频流中的音频(即 RTP)实时混合的工具。 一款用于将预先录制的音频与指定目标音频流中的音频(即 RTP)实时混合的工具。该工具创建于 2006 年 8 月至 9 月之间。该工具名为 rtpmixsound。它…

【java面试】redis篇

一、适用场景 问:你在项目中,都用到了redis,你在最近的哪些场景中使用了redis? 答:(结合实际项目情况) (一)缓存 查询流程: 请求路径: 一个get请求&#x…

行业分析---小米汽车2025第一季度财报

1 背景 最近几年是新能源汽车的淘汰赛,前短时间比亚迪再次开始了降价,导致一片上市车企的股价大跌,足见车圈现在的敏感度。因此笔者会一直跟踪新势力车企的财报状况,对之前财报分析感兴趣的读者朋友可以参考以下博客:…

TensorFlow深度学习实战(19)——受限玻尔兹曼机

TensorFlow深度学习实战(19)——受限玻尔兹曼机 0. 前言1. 受限玻尔兹曼机1.1 受限玻尔兹曼机架构1.2 受限玻尔兹曼机的数学原理 2. 使用受限玻尔兹曼机重建图像3. 深度信念网络小结系列链接 0. 前言 受限玻尔兹曼机 (Restricted Boltzmann Machine, RB…

设计模式——桥接设计模式(结构型)

摘要 桥接设计模式是一种结构型设计模式,用于将抽象与实现解耦,使二者可以独立变化。它通过将一个类拆分为“抽象”和“实现”两部分,并通过桥接关系组合,避免了类继承层次结构过于庞大。桥接模式包含抽象类、扩充抽象类、实现类…

java反射

简介 获取Class 误区 解释一下 “类” 和 “Class对象” 的区别,以及为什么每个类都有关联的 Class 对象: 🧩 核心概念:类 vs Class对象 想象你有一本《汽车使用说明书》: 类 这本说明书本身(纸上的文…

C++ 之 多态 【虚函数表、多态的原理、动态绑定与静态绑定】

目录 前言 1.多态的原理 1.1虚函数表 1.2派生类中的虚表 1.3虚函数、虚表存放位置 1.4多态的原理 1.5多态条件的思考 2.动态绑定与静态绑定 3.单继承和虚继承中的虚函数表 3.1单继承中的虚函数表 3.2多继承(非菱形继承)中的虚函数表 4.问答题 前言 需要声明的&#x…

28 C 语言作用域详解:作用域特性(全局、局部、块级)、应用场景、注意事项

1 作用域简介 作用域定义了代码中标识符(如变量、常量、数组、函数等)的可见性与可访问范围,即标识符在程序的哪些位置能够被引用或访问。在 C 语言中,作用域主要分为三类: 全局作用域局部作用域块级作用域 需注意&am…

day03-Vue-Element

1 Ajax 1.1 Ajax介绍 1.1.1 Ajax概述 我们前端页面中的数据,如下图所示的表格中的学生信息,应该来自于后台,那么我们的后台和前端是互不影响的2个程序,那么我们前端应该如何从后台获取数据呢?因为是2个程序&#xf…

智慧交通设计方案

该文档是智慧交通设计方案,交通设计位于综合交通规划后、道路工程设计前,目标是优化交通系统及设施,实现交通安全、高效、可持续发展。内容涵盖区域交通组织优化(含需求管理、速度管理等)、平面交叉口设计(要素、改善措施)、专项交通设计(公共交通、慢行系统等)、智能…

SAP学习笔记 - 开发17 - 前端Fiori开发 Component 配置(组件化)

上一章讲了Fiori前端开发中的国际化。 SAP学习笔记 - 开发16 - 前端Fiori开发 Properties文件(国际化) ,语言切换实例,Fiori 国际化(常用语言列表,关键规则,注意事项)-CSDN博客 本…

leetcode刷题日记——二叉树的层平均值

[ 题目描述 ]: [ 思路 ]: BFS,通过层次遍历求得每层的和,然后取平均数,存入结果数组树中节点个数在1-10000之间,那么结果数组最大为10000个结果,层数最多为 2n-1>10000,可以推…

Google Android 14设备和应用通知 受限制的设置 出于安全考虑......

重要提示: 文中部分步骤仅适用于 Android 13 及更高版本。了解如何查看 Android 版本。 启用受限制的设置后,应用将能够访问敏感信息,而这可能使您的个人数据面临风险。除非您信任该应用的开发者,否则我们不建议您允许访问受限制…