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

PySide6 GUI 学习笔记——常用类及控件使用方法(单行文本控件QLineEdit)

文章目录

  • QLineEdit 介绍
    • 常用方法
    • QLineEdit.EchoMode 取值
    • 光标相关方法
    • 文本选择方法
    • 输入格式化字符(Input Mask)
    • 常用信号
    • QLineEdit 实例

QLineEdit 介绍

继承关系

QLineEdit 是 PySide6(Qt for Python)中用于单行文本输入的控件。它支持文本编辑、光标控制、文本选择、输入掩码、校验器等多种功能,广泛应用于表单、搜索框等场景。

常用方法

方法名说明
setText(str)设置文本内容
text()获取当前文本
clear()清空文本
setReadOnly(bool)设置是否只读
setMaxLength(int)设置最大输入长度
setPlaceholderText(str)设置占位符文本
setEchoMode(QLineEdit.EchoMode)设置回显模式
setValidator(QValidator)设置输入校验器
setInputMask(str)设置输入掩码
undo()撤销
redo()重做
copy()复制
cut()剪切
paste()粘贴

QLineEdit.EchoMode 取值

枚举值说明
QLineEdit.Normal正常显示
QLineEdit.NoEcho不显示
QLineEdit.Password密码模式(显示为*)
QLineEdit.PasswordEchoOnEdit编辑时显示密码,其他时隐藏

光标相关方法

方法名说明
cursorPosition()获取光标位置
setCursorPosition(int)设置光标位置
cursorBackward(bool, int)光标向后移动
cursorForward(bool, int)光标向前移动
home(bool)光标移到行首
end(bool)光标移到行尾

文本选择方法

方法名说明
hasSelectedText()是否有选中文本
selectedText()获取选中的文本
selectionStart()获取选中文本的起始位置
setSelection(start, length)选中指定范围文本
selectAll()全选
deselect()取消选择

输入格式化字符(Input Mask)

字符说明
A必须输入 ASCII 字母或数字
a可选输入 ASCII 字母或数字
N必须输入字母或数字
n可选输入字母或数字
9必须输入数字(0-9)
0可选输入数字(0-9)
#必须或可选输入数字、加减号
X必须输入任意字符
x可选输入任意字符

常用信号

信号名说明
textChanged(str)文本内容发生变化时发出
textEdited(str)用户编辑文本时发出
editingFinished()编辑完成(如回车或失焦)时发出
returnPressed()按下回车键时发出
selectionChanged()选中文本发生变化时发出
cursorPositionChanged(int, int)光标位置变化时发出

QLineEdit 实例

下面是一个简单的示例,用户在第一个 QLineEdit 输入城市名,点击按钮后,查询该城市天气(此处用模拟数据),并将结果显示到第二个 QLineEdit 上:

from PySide6.QtWidgets import (QApplication, QWidget, QVBoxLayout, QHBoxLayout,QLineEdit, QPushButton, QLabel
)# 模拟天气查询函数
def get_weather(city):fake_weather = {"北京": "晴 25℃","上海": "多云 22℃","广州": "小雨 28℃"}return fake_weather.get(city, "未找到该城市天气信息")app = QApplication([])window = QWidget()
window.setWindowTitle("城市天气查询")
layout = QVBoxLayout(window)input_layout = QHBoxLayout()
city_edit = QLineEdit()
city_edit.setPlaceholderText("请输入城市名")
query_btn = QPushButton("查询天气")
input_layout.addWidget(city_edit)
input_layout.addWidget(query_btn)result_edit = QLineEdit()
result_edit.setReadOnly(True)
result_edit.setPlaceholderText("天气信息将在此显示")layout.addLayout(input_layout)
layout.addWidget(result_edit)def on_query():city = city_edit.text().strip()weather = get_weather(city)result_edit.setText(weather)query_btn.clicked.connect(on_query)window.show()
app.exec()

运行效果如下:

代码示例

http://www.xdnf.cn/news/917911.html

相关文章:

  • Linux进程(中)
  • Java高级 |【实验八】springboot 使用Websocket
  • 174页PPT家居制造业集团战略规划和运营管控规划方案
  • 【android bluetooth 协议分析 15】【SPP详解 1】【SPP 介绍】
  • ThinkPHP 5.1 中的 error 和 success 方法详解
  • 【LangchainAgent】Agent基本构建与使用
  • 基于Spring Boot的云音乐平台设计与实现
  • Vue3 项目的基本架构解读
  • K8S认证|CKS题库+答案| 6. 创建 Secret
  • Gartner《How to Create and Maintain a Knowledge Base forHumans and AI》学习报告
  • 学习使用YOLO的predict函数使用
  • Android 平台RTSP/RTMP播放器SDK接入说明
  • 现代简约壁炉:藏在极简线条里的温暖魔法
  • 数据库(sqlite)基本操作
  • 量子计算突破:新型超导芯片重构计算范式
  • Axure应用交互设计:注册登录页完整交互设计
  • Web前端基础
  • Axure应用交互设计:如何构建注册登录页
  • AxureRP-Pro-Beta-Setup_114413.exe (6.0.0.2887)
  • 1.5 Node.js 的 HTTP
  • 9.进程间通信
  • 提供MD5解密的网站
  • JAVA学习 DAY3 注释与编码规范讲解
  • Supersonic 新一代AI数据分析平台
  • 【题解-洛谷】B3622 枚举子集(递归实现指数型枚举)
  • 设计一个算法:删除非空单链表L中结点值为x的第一个结点的前驱结点
  • 零基础玩转物联网-串口转以太网模块如何快速实现与TCP服务器通信
  • 【20250607接单】Spark + Scala + IntelliJ 项目的开发环境配置从零教学
  • Spark 之 AQE
  • OneNet + openssl + MTLL