Qt:11.输入类控件(QLineEdit-单行文本输入控件、QTextEdit-多行文本输入控件、QComboBox-下拉列表的控件)
一、QLineEdit-单行文本输入控件:
1.1QLineEdit介绍:
- QLineEdit 是 Qt 库中的一个单行文本输入控件,不能换行。
- 允许用户输入和编辑单行文本。
1.2属性介绍:
inputMask
- 设置输入掩码,以限定输入格式。
- setInputMask(const QString &inputMask) 设置输入掩码.
- inputMask() 获取当前输入掩码。
text
- 控件中的当前文本。
- setText(const QString &text) 设置文本。
- text() 获取当前文本。
maxLength
- 允许输入的最大字符数。
- setMaxLength(int) 设置最大字符数。
- maxLength() 获取最大字符数。
frame
- 是否显示边框。
- setFrame(bool) 设置是否显示边框。
- hasFrame() 获取当前边框状态。
echoMode
- 设置文本的回显模式(正常、密码、无回显等)。
- setEchoMode(QLineEdit::EchoMode mode) 设置回显模式。
- QLineEdit::Normal这是默认的回显模式,输入的文本以正常方式显示。
QLineEdit::NoEcho输入的文本不会显示。
QLineEdit::Password输入的文本以密码模式显示,即每个字符都显示为掩码字符(通常是圆点或星号,和操作系统有关)
QLineEdit::PasswordEchoOnEdit当用户输入时,文本会以正常方式显示,但当输入完成后,文本会转为密码模式显示。- echoMode() 获取当前回显模式。
cursorPosition
- 当前光标位置。
- setCursorPosition(int) 设置光标位置。
- cursorPosition() 获取当前光标位置。
alignment
- 文本的对齐方式(左对齐、右对齐、居中等)。
- setAlignment(Qt::Alignment alignment) 设置对齐方式。
- alignment() 获取当前对齐方式。
dragEnabled
- 是否启用拖动功能。
- setDragEnabled(bool) 设置是否启用拖动。
- dragEnabled() 获取当前拖动状态。
readOnly
- 是否为只读模式。
- setReadOnly(bool) 设置只读状态。
- isReadOnly() 获取当前只读状态。
placeholderText
- 占位符文本,当输入框为空时显示,有提示的作用,只要开始输入占位文本就消失了。
- setPlaceholderText(const QString &text) 设置占位符文本。
- placeholderText() 获取当前占位符文本。
cursorMoveStyle
- 光标移动风格。
- setCursorMoveStyle(Qt::CursorMoveStyle style) 设置光标移动风格。
- cursorMoveStyle() 获取当前光标移动风格。
clearButtonEnabled
- 是否显示清除按钮,右侧的❌,删除已输入的内容。
- setClearButtonEnabled(bool) 设置是否显示清除按钮。
- isClearButtonEnabled() 获取当前清除按钮状态。
1.3信号介绍:
textChanged(const QString &text) 当控件中的文本变化时发射此信号。 textEdited(const QString &text) 当用户编辑文本时发射此信号。 returnPressed() 当用户按下 Enter 键时发射此信号。 editingFinished() 当控件失去焦点并结束编辑时发射此信号。 selectionChanged() 当文本选择变化时发射此信号。 cursorPositionChanged(int oldPos, int newPos) 当光标位置变化时发射此信号。
1.4实例——登录窗口:
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//设置占位符文本,当作提示信息ui->lineEdit_name->setPlaceholderText("请输入用户名:");ui->lineEdit_pass->setPlaceholderText("请输入密码:");ui->lineEdit_phone->setPlaceholderText("请输入电话号码:");//设置清楚按钮ui->lineEdit_name->setClearButtonEnabled(true);ui->lineEdit_pass->setClearButtonEnabled(true);ui->lineEdit_phone->setClearButtonEnabled(true);//输入密码时,使用password模式回显ui->lineEdit_pass->setEchoMode(QLineEdit::Password);//设置电话号码的最大长度ui->lineEdit_phone->setMaxLength(11); }
二、QTextEdit-多行文本输入控件:
2.1QTextEdit介绍:
- QTextEdit 是 Qt 中的一个多行文本编辑控件。
- 它提供了丰富的功能来处理和显示富文本。它支持简单文本和 HTML 格式文本的输入和显示,并且提供了多种文本格式化选项。
2.2属性介绍:
autoFormatting
- 控制自动格式化功能的行为。
- setAutoFormatting(QTextEdit::AutoFormatting)
- autoFormatting()
tabChangesFocus
- 如果设置为 true,按 Tab 键时将改变焦点,而不是插入制表符。
- setTabChangesFocus(bool)
- tabChangesFocus()
documentTitle
- 获取或设置文档的标题。
- setDocumentTitle(const QString &)
- documentTitle()
undoRedoEnabled
- 启用或禁用撤销和重做功能。
- setUndoRedoEnabled(bool)
- isUndoRedoEnabled()
lineWrapMode
- 设置行折叠模式。
- setLineWrapMode(QTextEdit::LineWrapMode)
- lineWrapMode()
lineWrapColumnOrWidth
- 设置行折叠列或宽度(取决于行折叠模式)。
- setLineWrapColumnOrWidth(int)
- lineWrapColumnOrWidth()
readOnly
- 将编辑器设置为只读模式。
- setReadOnly(bool)
- isReadOnly()
markdown
- 设置或获取编辑器内容为 Markdown 格式。
- setMarkdown(const QString &)
- toMarkdown()
html
- 设置或获取编辑器内容为 HTML 格式。
- setHtml(const QString &)
- toHtml()
overwriteMode
- 设置编辑器为覆盖模式(插入模式)或插入模式。
- setOverwriteMode(bool)
- overwriteMode()
tabStopWidth
- 设置制表符宽度(以像素为单位)。
- setTabStopWidth(int)
- tabStopWidth()
tabStopDistance
- 设置制表符距离(以点为单位)。
- setTabStopDistance(qreal)
- tabStopDistance()
acceptRichText
- 设置编辑器是否接受富文本输入。
- setAcceptRichText(bool)
- acceptRichText()
cursorWidth
- 设置光标的宽度(以像素为单位)。
- setCursorWidth(int)
- cursorWidth()
textInteractionFlags
- 设置文本交互标志,控制用户如何与文本进行交互。
- setTextInteractionFlags(Qt::TextInteractionFlags)
- textInteractionFlags()
placeholderText
- 设置占位符文本,当编辑器为空时显示。
- setPlaceholderText(const QString &)
- placeholderText()
2.3信号介绍:
textChanged() 当文本内容发生变化时发射此信号 currentCharFormatChanged(const QTextCharFormat &format) 当当前字符格式变化时发射此信号。 cursorPositionChanged() 当光标位置变化时发射此信号。 selectionChanged() 当选中文本变化时发射此信号。 redoAvailable(bool available) 当重做操作可用或不可用时发射此信号。 undoAvailable(bool available) 当撤销操作可用或不可用时发射此信号。
三、QComboBox-下拉列表的控件:
3.1QComboBox介绍:
- QComboBox 是 Qt 中用于创建下拉列表的控件。
- 它允许用户从预定义的选项中进行选择,或者根据配置,允许用户输入自定义文本。
3.2属性介绍:
editable
- 组合框是否可编辑。如果设置为 true,用户可以在组合框中输入自定义文本。
- setEditable(bool editable)
- isEditable() const
currentText
- 当前选中的项的文本。设置或获取当前选中的项的文本。
- setCurrentText(const QString &text)
- currentText()
currentIndex
- 当前选中的项的索引。设置或获取当前选中的项的索引(下标)。
- setCurrentIndex(int index)
- currentIndex() const
maxVisibleItems
- 下拉列表中可见的最大项数。
- setMaxVisibleItems(int maxItems)
- maxVisibleItems()
maxCount
- 组合框中最大项数。
- setMaxCount(int max)
- maxCount() const
sizeAdjustPolicy
- 尺寸调整策略。设置组合框如何调整其大小以适应内容。
- setSizeAdjustPolicy(QComboBox::SizeAdjustPolicy policy)
- sizeAdjustPolicy() const
minimumContentsLength
- 内容的最小长度。设置组合框的内容显示区域的最小长度,以字符数为单位.
- setMinimumContentsLength(int characters)
- minimumContentsLength() const
iconSize
- 图标大小。设置组合框中显示的图标的大小。
- setIconSize(const QSize &size)
- iconSize() const
duplicatesEnabled
- 是否允许重复的项。如果设置为 true,组合框可以包含重复的项。
- setDuplicatesEnabled(bool enable)
- duplicatesEnabled() const
frame
- 是否显示框架。
- setFrame(bool)
- hasFrame() const
modelColumn
- 模型中用于显示的列。
- setModelColumn(int column)
- modelColumn() const
insertPolicy
- 插入策略,决定新项如何插入组合框。
- setInsertPolicy(QComboBox::InsertPolicy policy)
- insertPolicy() const
3.3信号介绍:
activated(int index)
- 当用户选择一个项时发射此信号。传递项的索引。
activated(const QString &text)
- 当用户选择一个项时发射此信号,传递项的文本。
currentIndexChanged(int index)
- 当前索引变化时发射此信号。传递项的索引。
currentIndexChanged(const QString &text)
- 当前索引变化时发射此信号,传递项的文本。
highlighted(int index)
- 当用户高亮显示一个项时发射此信号。传递项的索引。
highlighted(const QString &text)
- 当用户高亮显示一个项时发射此信号,传递项的文本。
editTextChanged(const QString &text)
- 当编辑文本变化时发射此信号(仅在组合框可编辑时有效)。
3.4添加选项:
- 通过代码的方式可以使用addItem()方法一一添加选项。
- 通过图形化界面添加,选择控件,右键编辑项目,添加即可。
3.5实例——读取文件创建下拉菜单:
#include "widget.h" #include "ui_widget.h" #include <fstream> #include <QDebug>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//设置单词最多显示选项数量ui->comboBox->setMaxVisibleItems(3);//打开文件,要包含头文件fstreamstd::fstream file("D:/Cpp or Java/demoOOOOOO/Qt/QComboBox_test2/laopo.txt");//判断文件是否成功读取到if(!file){qDebug()<<"找不到文件!";return;}//创建string对象存储每次读取的一行std::string line;//循环添加到下拉菜单while(std::getline(file,line)){ui->comboBox->addItem(QString::fromStdString(line));}//关闭文件file.close();}
相关文章:

Qt:11.输入类控件(QLineEdit-单行文本输入控件、QTextEdit-多行文本输入控件、QComboBox-下拉列表的控件)
一、QLineEdit-单行文本输入控件: 1.1QLineEdit介绍: QLineEdit 是 Qt 库中的一个单行文本输入控件,不能换行。允许用户输入和编辑单行文本。 1.2属性介绍: inputMask 设置输入掩码,以限定输入格式。setInputMask(con…...

Qt 音频编程实战项目
一Qt 音频基础知识 QT multimediaQMediaPlayer 类:媒体播放器,主要用于播放歌曲、网络收音 机等功能。QMediaPlaylist 类:专用于播放媒体内容的列表。 二 音频项目实战程序 //版本5.12.8 .proQT core gui QT multimedia greate…...

C#委托事件的实现
1、事件 在C#中事件是一种特殊的委托类型,用于在对象之间提供一种基于观察者模式的通知机制。 1.1、事件的发送方定义了一个委托,委托类型的声明包含了事件的签名,即事件处理器方法的签名。 1.2、事件的订阅者可以通过运算符来注册事件处理器…...
Java策略模式在动态数据验证中的应用
在软件开发中,数据验证是一项至关重要的任务,它确保了数据的完整性和准确性,为后续的业务逻辑处理奠定了坚实的基础。然而,不同的数据来源往往需要不同的验证规则,如何在不破坏代码的整洁性和可维护性的同时࿰…...
【Linux】shell基础知识点(updating)
1.输出重定向2.多命令批量执行(; 、&&、 ||)3.脚本不同方式执行的区别(source、bash、sh、./)4.理解环境变量5.export6.引号的使用last.命令相关 1.输出重定向 3种数据流: stdin:标准输入…...
Python基础练习•二
# ## Python编程入门作业 # # ### 选择题 # 1. 假设等号右侧变量都已知的情况下,下列哪个语句在Python中是⾮法的?( B ) # A. x y z 1 # B. x (y z 1) # C. x, y y, x # D. x y # 2. 关于Python变量,下列…...

智慧科技照亮水利未来:深入剖析智慧水利解决方案如何助力水利行业实现高效、精准、可持续的管理
目录 一、智慧水利的概念与内涵 二、智慧水利解决方案的核心要素 1. 物联网技术:构建全面感知网络 2. 大数据与云计算:实现数据高效处理与存储 3. GIS与三维可视化:提升决策支持能力 4. 人工智能与机器学习:驱动决策智能化 …...

Vue3学习笔记(n.0)
vue指令之v-for 首先创建自定义组件(practice5.vue): <!--* Author: RealRoad1083425287qq.com* Date: 2024-07-05 21:28:45* LastEditors: Mei* LastEditTime: 2024-07-05 21:35:40* FilePath: \Fighting\new_project_0705\my-vue-app\…...

基于Spring Boot的在线考试系统
您好!我是专注于计算机技术研究的码农小野。如果您对在线考试系统感兴趣或有相关开发需求,欢迎随时联系我。 开发语言:Java 数据库:MySQL 技术:Spring Boot框架,Java技术 工具:Eclipse&…...

Day65 代码随想录打卡|回溯算法篇---组合总和II
题目(leecode T40): 给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用 一次 。 注意:解集不能包含…...
C++ 入门03:函数与作用域
往期回顾: C 入门01:初识 C-CSDN博客C 入门02:控制结构和循环-CSDN博客 一、前言 在前面的文章学习中,我们了解了C语言的基础,包括如何定义变量来存储数据,以及如何利用输入输出流实现程序与用户之间的无缝…...
在Linux/Debian/Ubuntu中出现“Could not get lock /var/lib/dpkg/lock-frontend”问题的解决办法
在Linux/Debian/Ubuntu中出现“Could not get lock /var/lib/dpkg/lock-frontend”问题的解决办法 在使用 apt 或 apt-get 进行软件包管理时,有时会遇到以下错误提示: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporari…...

odoo中的钩子 Hooks
钩子 钩子(Hooks)是一种在特定时间点或特定事件发生时执行自定义代码的机制。它们允许开发者在不修改核心代码的情况下,为Odoo添加自定义功能或扩展现有功能。以下是关于Odoo钩子的一些关键点和常见用法: 一、钩子的类型 pre_i…...

05.C1W4.Machine Translation and Document Search
往期文章请点这里 目录 OverviewWhat you’ll be able to do!Learning Objectives Transforming word vectorsOverview of TranslationTransforming vectors Align word vectorsSolving for RFrobenius normFrobenius norm squaredGradient K nearest neighborsFinding the tr…...

计算机网络——数据链路层(点对点协议PPP)
点对点协议PPP的概述 对于点对点的链路,目前使用得最广泛的数据链路层协议是点对点协议 PPP (Point-to-Point Protocol)。 它主要应用于两个场景: 用户计算机与ISP之间的链路层协议就是点对点协议 PPP,1999年公布了回以在以太网上运行的PPP协…...

信息安全概述
名词解释 大数据:指的是所涉及的资料量规模巨大到无法透过主流软件工具,在合理时间内达到撷取、管理、处理、并整理成为帮助企业经营决策更积极目的的资讯。 云计算:是指通过网络提供计算资源(如服务器、存储、数据库、软件开发…...

UE5.3-基础蓝图类整理一
常用蓝图类整理: 1、获取当前关卡名:Get Current LevelName 2、通过关卡名打开关卡:Open Level(by name) 3、碰撞检测事件:Event ActorBeginOverlap 4、获取当前player:Get Player Pawn 5、判断是否相等࿱…...
Python面试题: 如何在 Python 中实现一个线程池?
在 Python 中,实现线程池可以使用内置的 concurrent.futures 模块,该模块提供了一个高层次的接口来管理并发任务。ThreadPoolExecutor 类是实现线程池的主要工具。以下是一些使用示例,展示如何在 Python 中实现和使用线程池: 1. …...

☺初识c++(语法篇)☺
目录 一命名空间(namespace): 二cout与cin简述: 三缺省参数: 四函数重载: 五引用: 六内联函数: 七c中的nullptr简述: 一命名空间(namespace)࿱…...

process.env 管理 Vue 项目的环境变量(Vue项目中环境变量的配置及调用)
简述:在构建 Vue 应用时,管理配置是开发中的一个重要部分。不同的环境(如开发、测试和生产)往往需要不同的配置,例如 API、 基础 URL、第三方服务的密钥等。使用环境变量可以帮助我们更好地管理这些配置。这里将介绍如…...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...

23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...

基于PHP的连锁酒店管理系统
有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...

Spring AOP代理对象生成原理
代理对象生成的关键类是【AnnotationAwareAspectJAutoProxyCreator】,这个类继承了【BeanPostProcessor】是一个后置处理器 在bean对象生命周期中初始化时执行【org.springframework.beans.factory.config.BeanPostProcessor#postProcessAfterInitialization】方法时…...