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 格式介绍
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
相关文章:

PySide6 GUI 学习笔记——常用类及控件使用方法(地址类QUrl)
文章目录 地址类QUrl主要功能URL 格式介绍常见 scheme(协议)类型QUrl 类常用方法常用方法示例典型应用场景 地址类QUrl QUrl 是 PySide6.QtCore 模块中的一个类,用于处理和操作 URL(统一资源定位符)。它可以解析、构建…...

任务23:创建天气信息大屏Django项目
任务描述 知识点: Django 重 点: Django创建项目Django视图函数Django路由Django静态文件Django渲染模板 内 容: 使用PyCharm创建大屏项目渲染大屏主页 任务指导 1. 使用PyCharm创建大屏项目。 创建weather项目配置虚拟环境创建ch…...
数学分析——一致性(均匀性)和收敛
目录 1. 连续函数 1.1 连续函数的定义 1.2 连续函数的性质 1.2.1 性质一 1.2.2 性质二 1.2.3 性质三 1.2.4 性质四 2. 一致连续函数 2.1 一致连续函数的定义 2.2 一致连续性定理(小间距定理)(一致连续函数的另一种定义) 2.3 一致连续性判定法 2.4 连…...

Flutter GridView网格组件
目录 常用属性 GridView使用配置 GridView.count使用 GridView.extent使用 GridView.count Container 实现列表 GridView.extent Container 实现列表 GridView.builder使用 GridView网格布局在实际项目中用的也是非常多的,当我们想让可以滚动的元素使用矩阵…...

【深度学习】18. 生成模型:Variational Auto-Encoder(VAE)详解
Variational Auto-Encoder(VAE)详解 本节内容完整介绍 VAE 的模型结构、优化目标、重参数化技巧及其生成机制。 回顾:Autoencoder(自编码器) Autoencoder 是一种无监督学习模型,旨在从未标注的数据中学习压…...
NodeJS全栈开发面试题讲解——P6安全与鉴权
✅ 6.1 如何防止 SQL 注入 / XSS / CSRF? 面试官您好,Web 安全三大经典问题分别从不同层面入手: 🔸 SQL 注入(Server端) 原理:恶意用户将 SQL 注入查询语句拼接,导致数据泄露或破坏…...
C# 密封类和密封方法
密封(sealed)是C#中用于限制继承和多态行为的关键字,它可以应用于类和方法,提供了一种控制继承层次的方式。 密封类 特点 使用 sealed 关键字修饰的类密封类不能被其他类继承,但可以继承其他类或接口主要用于防止派生所有结构(struct)都是…...
为什么badmin reconfig以后始终不能提交任务
最近遇到的怪事:修改了openlava配置以后运行badmin reconfig激活配置变更,但是长时间始终不能提交任务。 首先查看进程,发现openlava管理节点上的所有服务进程都在运行状态;查看mbd日志没有发现错误信息;再看mbd进程的…...

解决Window10上IP映射重启失效的问题
问题 在实际网络搭建过程中,大家有可能会遇到在局域网范围内,在自己本机上搭建一个网站或者应用时,其他设备通过本机的IP地址无法访问的问题,这个问题可以通过设置IP映射来解决,但是通过netsh interface命令设置的IP映射…...
力扣刷题(第四十四天)
灵感来源 - 保持更新,努力学习 - python脚本学习 删除重复的电子邮箱 解题思路 这个问题要求我们删除表中所有重复的电子邮箱,只保留每个唯一电子邮箱对应的最小id记录。解决这个问题的关键在于识别出哪些记录是重复的,并确定需要删除的…...
MyBatis-Plus高级用法:最优化持久层开发
MyBatis-Plus 是 MyBatis 的增强工具,旨在简化开发、提高效率并保持 MyBatis 的灵活性。本文将详细介绍 MyBatis-Plus 的高级用法,帮助开发者最优化持久层开发。 一、MyBatis-Plus 简介 MyBatis-Plus 是一个 ORM 框架,提供了 CRUD 接口、条…...
c++之循环
目录 C循环结构完全解析:从基础到实战应用 一、for循环结构 二、while循环结构 三、do-while循环结构 四、范围for循环(C11) 五、循环控制语句 C循环结构完全解析:从基础到实战应用 循环结构是编程语言的核心控制结构之一&a…...

python h5py 读取mat文件的<HDF5 object reference> 问题
我用python加载matlab的mat文件 mat文件: 加载方式: mat_file h5py.File(base_dir str(N) _nodes_dataset_snr- str(snr) _M_ str(M) .mat, r) Signals mat_file["Signals"][()] Tp mat_file["Tp"][()] Tp_list mat_fil…...

linux命令 systemctl 和 supervisord 区别及用法解读
目录 基础与背景服务管理范围配置文件和管理方式监控与日志依赖管理适用场景常用命令对照表实际应用场景举例优缺点对比小结参考链接 1. 基础与背景 systemctl 和 supervisord 都是用于管理和控制服务(进程)的工具,但它们在设计、使用场景和…...

Spring Boot + MyBatis 实现的简单用户管理项目的完整目录结构示例
📁 示例项目结构(基于 Maven) user-management/ ├── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/example/usermanagement/ │ │ │ ├── controller/ │ │ │ │ └── UserC…...
NodeJS全栈开发面试题讲解——P5前端能力(React/Vue + API调用)
✅ 5.1 如何使用 React/Vue 发起后端请求?用什么库? 面试官您好,在实际项目中我们通常使用 axios、fetch 或框架提供的封装库发起后端请求。 🔧 常用库对比: 库框架适配优点axios通用默认支持拦截器、取消请求、请求体…...
[001]从操作系统层面看锁的逻辑
从操作系统层面,锁 (Lock) 是一种同步机制,用于控制多个线程或线程对共享资源的访问,防止竞态条件(race condition).常见的锁包括互斥锁(mutex)、读写锁(read-write lock)、自旋锁(spinlock)等。…...
初识 Pytest:测试世界的智能助手
概述 在编写程序的过程中,我们常常需要确认代码是否按照预期工作。为了提高效率并减少人为错误,我们可以借助工具来帮助我们完成这一过程。Pytest 就是这样一个用于编写和运行测试的 Python 工具。 什么是 Pytest? Pytest 是一个用于 Pyth…...

stm32 + ads1292心率检测报警设置上下限
这个项目是在做心率检测的时候一个小伙伴提出来的,今年五一的时候提出来的想法,五一假期的时候没时间,也没心情做这个,就把这个事情搁置了,在月中做工作计划的时候,就把这个小项目排进来了,五一…...

项目练习:element ui 的icon放在button的右侧
文章目录 一、需求描述二、左侧实现三、右侧实现 一、需求描述 我们知道,element ui的button一般都会配置一个icon 这个icon默认是放在左侧的。 如何让它放在右侧了? 二、左侧实现 <el-buttontype"primary"plainicon"el-icon-d-arr…...

性能诊断工具AWR配置策略与报告内容解析
AWR(Automatic Workload Repository)是 Oracle 数据库中的一个重要性能诊断工具。AWR 会按照固定的时间间隔自动收集数据库系统的性能统计信息。这些信息涵盖了数据库运行状态的方方面面,像SQL 执行情况、系统资源利用率、等待事件等。AWR抓取…...

Tailwind CSS 实战,基于 Kooboo 构建 AI 对话框页面(三):实现暗黑模式主题切换
基于前两篇的内容,为页面添加主题切换功能,实现网站页面的暗黑模式: Tailwind css实战,基于Kooboo构建AI对话框页面(一)-CSDN博客 Tailwind css实战,基于Kooboo构建AI对话框页面(…...
OleDbParameter.Value 与 DataTable.Rows.Item.Value 的性能对比
OleDbParameter.Value 与 DataTable.Rows.Item.Value 的性能对比 您提到的两种赋值操作属于不同场景,它们的性能和稳定性取决于具体使用方式。下面从几个维度进行分析: 1. 操作本质对比 (1)OleDbParameter.Value 用途…...
Unity3D ET框架游戏脚本系统解析
前言 ET框架在Unity3D中实现的GamePlay脚本系统是一种革命性的、基于ECS(实体-组件-系统)架构的设计,它彻底改变了传统的基于MonoBehaviour的游戏逻辑编写方式。其核心思想是追求高性能、高解耦、易热更新,特别适合大型复杂的网络…...
函数的定义、调用、值传递、声明、非安全函数
函数 函数(英文“function”)把一些经常用到的代码封装起来,这样可以减少一些冗余代码、重复的代码。一个大的程序,它是由很多很多程序块组成的,每个模块实现一个特定的功能。 函数的定义 格式 英文版 return_typ…...

MySQL 8.0 OCP 英文题库解析(十一)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题91~100 试题91…...
机器学习算法-k-means
今天我们用 「超市顾客分组」 的例子来讲解K-means算法,从原理到实现一步步拆解,保证零基础也能懂! 🛒 例子背景 假设你是超市经理,手上有顾客的以下数据: 顾客ID每月消费金额(元)…...

ADQ36-2通道2.5G,4通道5G采样PXIE
ADQ36是一款高端12位四通道灵活数据采集板,针对高通道数科学应用进行了优化。ADQ36具有以下特性: 4 / 2模拟输入通道每通道2.5 / 5 GSPS7gb/秒的持续数据传输速率两个外部触发器通用输入/输出(GPIO)ADQ36数字化仪包括固件FWDAQ ADQ36简介 特…...
LLM:decoder-only 思考
文章目录 前言一、KV-cache1、为什么使用KV-cache2、KV-cache的运作原理 二、Decoder-only VS Encoder-Decoder1、Decoder-only2、Encoder-Decoder 三、Causal LM VS PrefixLM总结 前言 decoder-only模型是目前大模型的主流架构,由于OpenAI勇于挖坑踩坑,…...

数字创新智慧园区建设及运维方案
该文档是 “数字创新智慧园区” 建设及运维方案,指出传统产业园区存在管理粗放等问题,“数字创新园区” 通过大数据、AI、物联网、云计算等数字化技术,旨在提升园区产业服务、运营管理水平,增强竞争力,实现绿色节能、高效管理等目标。建设内容包括智能设施、核心支撑平台、…...