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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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文…