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();}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/43121.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

react学习——25redux实现求和案例(完整版)

1、目录结构 2、count/index.js import React, {Component} from "react"; //引入store,用于获取数据 import store from ../../redux/store //引入actionCreator 专门创建action对象 import {createDecrementAction,createIncrementAction} from ../../redux/coun…

CSS【详解】边框 border,边框-圆角 border-radius,边框-填充 border-image,轮廓 outline

边框 border border 是以下三种边框样式的简写&#xff1a; border-width 边框宽度 —— 数值 px&#xff08;像素&#xff09;,thin&#xff08;细&#xff09;,medium&#xff08;中等&#xff09;,thick&#xff08;粗&#xff09;border-style 边框线型 —— none【默认值…

78. UE5 RPG 创建技能数据并初始化技能ui

在上一篇文章里&#xff0c;我们创建了技能的UI&#xff0c;接下来&#xff0c;我们要考虑如何实现对技能UI的填充&#xff0c;肯定不能直接写死&#xff0c;需要有一些方法去实现技能的更新。我们期望能够创建一个技能数据&#xff0c;然后根据数据通过回调的方式实现数据的更…

一键掌握天气动态 - 基于Vue和高德API的实时天气查询

前言 本文将学习如何使用Vue.js快速搭建天气预报界面,了解如何调用高德地图API获取所需的天气数据,并掌握如何将两者有机结合,实现一个功能丰富、体验出色的天气预报应用 无论您是前端新手还是有一定经验,相信这篇教程都能为您带来收获。让我们一起开始这段精彩的Vue.js 高德…

桌面悬浮备忘录哪个好?能在桌面悬浮使用的备忘app

备忘录是我们日常工作和生活中的常用工具&#xff0c;它帮助我们记录重要信息&#xff0c;提醒我们完成各项任务。而将备忘录悬浮在桌面上使用&#xff0c;无疑能进一步提高我们的工作效率。想象一下&#xff0c;在处理复杂的工作任务时&#xff0c;你能够随时在桌面上查看提醒…

JS获取本机ip地址方法

前端获取本机ip地址&#xff1b;使用第三方免费API <script>function ipJson(ipJson) {console.log(获取到的网络IP,ipJson);//可以把结果存在window上&#xff0c;方便调用window.ipJson ipJson;} </script> <script src"https://whois.pconline.com.cn/…

产品使用手册深度剖析:五步快速敲定产品手册策划思路

引言 在这个信息爆炸的时代&#xff0c;产品使用手册不仅是产品的“说明书”&#xff0c;更是品牌与用户之间建立情感连接的桥梁。一份优秀的手册&#xff0c;能够迅速吸引用户的注意力&#xff0c;引导他们轻松上手&#xff0c;并深入体验产品的魅力。那么&#xff0c;如何撰…

ruoyi项目swagger文档升级knife4j文档

注释admin模块中的swagger依赖加入knife4j依赖 <!-- swagger3--> <!-- <dependency>--> <!-- <groupId>io.springfox</groupId>--> <!-- <artifactId>springfox-boot-starter</artifactId>--…

IDEA常用技巧荟萃:精通开发利器的艺术

1 概述 在现代软件开发的快节奏环境中&#xff0c;掌握一款高效且功能全面的集成开发环境&#xff08;IDE&#xff09;是提升个人和团队生产力的关键。IntelliJ IDEA&#xff0c;作为Java开发者的首选工具之一&#xff0c;不仅提供了丰富的编码辅助功能&#xff0c;还拥有高度…

预算有限?如何挑选经济适用的安全管理系统?

如今&#xff0c;无论是信息安全、生产安全还是人员安全&#xff0c;都直接关系到企业的稳定运营和长远发展。然而&#xff0c;对于许多中小企业而言&#xff0c;高昂的安全管理系统投入往往成为一大难题。那么&#xff0c;在预算有限的情况下&#xff0c;如何挑选一款既经济适…

Github 2024-07-07php开源项目日报 Top9

根据Github Trendings的统计,今日(2024-07-07统计)共有9个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量PHP项目9Blade项目2JavaScript项目1Laravel:表达力和优雅的 Web 应用程序框架 创建周期:4631 天开发语言:PHP, BladeStar数量:75969 个Fork数…

如何整合生成的人工智能?(GenAI)为你未来的工作增加动力

生成人工智能(GenAI)它发展迅速&#xff0c;以前所未有的速度取得了突破。人工智能将继续改变各行各业&#xff0c;预计2023年至2030年的年增长率将达到37.3%。由于一种新的知识工作者现在面临被取代的风险&#xff0c;生成式人工智能的惊人崛起进一步加剧了这种紧迫性。据《未…

嘎嘎详细的三维变换详细讲解,包括视图变换、投影变换等,超级通俗易懂!

前置二维空间的各种变换笔记&#xff1a;二维变换 三维空间中的齐次坐标 从二维变换开始引申&#xff0c;可得到三维中的一个点的表达方式为 ( x , y , z , 1 ) ⊤ (\mathbf{x}, \mathbf{y}, \mathbf{z}, 1)^{\top} (x,y,z,1)⊤&#xff0c;也就是w1&#xff0c;而三维的向量…

插入排序算法(C语言版)

直接插入排序 插入排序&#xff08;insert sort&#xff09;是一种简单的排序算法&#xff0c;它的工作原理与手动整理一副牌的过程非常相似。 具体来说&#xff0c;我们在未排序区间选择一个基准元素&#xff0c;将该元素与其左侧已排序区间的元素逐一比较大小&#xff0c;并…

(自用)gtest单元测试

gtest是Google的一套用于编写C测试的框架&#xff0c;可以运行在很多平台上&#xff08;包括Linux、Mac OS X、Windows、Cygwin等等&#xff09;。基于xUnit架构。支持很多好用的特性&#xff0c;包括自动识别测试、丰富的断言、断言自定义、死亡测试、非终止的失败、生成XML报…

Mybatis的优缺点及适用场景?

目录 一、什么是Mybatis&#xff1f; 二、Mybatis框架的特点 三、Mybatis框架的优点&#xff1f; 四、MyBatis 框架的缺点&#xff1f; 五、MyBatis 框架适用场合&#xff1f; 六、代码示例 1. 配置文件 mybatis-config.xml 2. 映射文件 UserMapper.xml 3. Java 代码…

QT TCP网络通信编程

学习目标&#xff1a; TCP网络通信编程 前置环境 运行环境:qt creator 4.12 学习内容 一、TCP 协议基础知识: TCP 是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP 拥塞控制算法包括慢启动、拥塞避免、快速重传和快速恢复。TCP 通信需要建立连接,Qt 提供 QTcp…

利用Python的sympy包求解一元多次方程

一元1次方程 import sympy as sp # 导入sympy包 x sp.Symbol(x) # 定义符号变量 f 2*x -8 # 定义要求解的一元1次方程 x sp.solve(f) # 调用solve函数求解方程 x[4]一元2次方程 import sympy as sp # 导入sympy包 x sp.Symbol(x) # 定义符号变量 f …

网络安全合规建设

网络安全合规建设 一、法律安全需求基本合规&#xff08;1&#xff09;《网络安全法》重要节点等级保护政策核心变化 二、安全需求 业务刚需&#xff08;1&#xff09;内忧&#xff08;2&#xff09;外患 三、解决方法&#xff08;1&#xff09;总安全战略目标图&#xff08;2&…

广汇汽车:救得起来吗?

五折奔驰、六折宝马...BBA们“腰斩式”大降价后正在引发连锁反应。 国内第二大汽车经销商——广汇汽车&#xff0c;还好吗&#xff1f; 受新能源品牌冲击&#xff0c;近年来奔驰、宝马等豪华燃油品牌销量低迷&#xff0c;纷纷开启降价模式&#xff0c;首当其冲的就是以广汇汽车…