当前位置: 首页 > news >正文

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

相关文章:

  • 【Linux网络编程】数据链路层
  • 布隆筛选详解
  • TCP三次握手四次挥手
  • 将手机网络经USB数据线和本地局域网共享给华为AP6050DN无线接入点
  • TDengine 集群容错与灾备
  • 2024 CKA模拟系统制作 | Step-By-Step | 16、题目搭建-sidecar 代理容器日志
  • Go语言中的rune和byte类型详解
  • 【目标检测】检测网络中neck的核心作用
  • GEE:获取研究区的DEM数据
  • 模拟实现线程池(线程数目为定值)和定时器
  • Java数值处理常见错误解析
  • 鸿蒙OSUniApp集成WebAssembly实现高性能计算:从入门到实践#三方框架 #Uniapp
  • C/C++ 面试复习笔记(3)
  • WEBSTORM前端 —— 第3章:移动 Web —— 第3节:移动适配
  • 【前端】html2pdf实现用前端下载pdf
  • 前端面试准备-5
  • 字节面试手撕题:版本号排序
  • MyBatis03——SpringBoot整合MyBatis
  • OpenLayers 地图标注之图文标注
  • C#数字图像处理(二)
  • 凡科建站是不是关闭企业网站/免费个人博客网站
  • 如何找网站制作/软文世界平台
  • 爱爱做网站/seo查询工具
  • 微网站 小程序 区别/石家庄seo推广
  • 建设工程竣工验收消防备案网站/外链工具xg
  • 企业网站如何制作/合肥网站建设程序