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

发布于:2025-06-02 ⋅ 阅读:(35) ⋅ 点赞:(0)

地址类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
部分 示例值 说明
scheme https 协议
user user 用户名(可选)
password pass 密码(可选)
host example.com 主机
port 8080 端口(可选)
path /path/page.html 路径
query query=123 查询参数(可选)
fragment section 片段(可选)

常见 scheme(协议)类型

scheme 说明
http 超文本传输协议
https 安全超文本传输协议
ftp 文件传输协议
file 本地文件
ws WebSocket
wss 安全 WebSocket
mailto 电子邮件地址
data 内嵌数据
smb Windows 共享文件协议
nfs 网络文件系统
ssh 安全 Shell 协议
telnet 终端网络传输协议
imap 电子邮件 IMAP 协议
pop3 邮件 POP3 协议
tel 电子电话号码
javascript JavaScript 脚本
vnc 虚拟桌面协议
rtsp 实时传输流协议
rtmp 实时传输媒体协议
rmi 远程方法调用协议
irc Internet 聊天协议
gopher 互联网文件传输协议
nntp 网络新闻传输协议
nc 网络控制协议
sshs 安全 Shell 协议
sftp 安全文件传输协议
rlogin 远程登录协议
rsync 远程同步协议
rsh 远程 shell 协议
ssh2 安全 Shell 协议
MMS 多媒体分享协议
ed2k eDonkey 电驴网络传输协议
thunder 迅雷网络传输协议
Flashget FlashGet 网络传输协议

不同的 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


网站公告

今日签到

点亮在社区的每一天
去签到