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

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-单行文本输入控件&#xff1a; 1.1QLineEdit介绍&#xff1a; QLineEdit 是 Qt 库中的一个单行文本输入控件&#xff0c;不能换行。允许用户输入和编辑单行文本。 1.2属性介绍&#xff1a; inputMask 设置输入掩码&#xff0c;以限定输入格式。setInputMask(con…...

Qt 音频编程实战项目

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

C#委托事件的实现

1、事件 在C#中事件是一种特殊的委托类型&#xff0c;用于在对象之间提供一种基于观察者模式的通知机制。 1.1、事件的发送方定义了一个委托&#xff0c;委托类型的声明包含了事件的签名&#xff0c;即事件处理器方法的签名。 1.2、事件的订阅者可以通过运算符来注册事件处理器…...

Java策略模式在动态数据验证中的应用

在软件开发中&#xff0c;数据验证是一项至关重要的任务&#xff0c;它确保了数据的完整性和准确性&#xff0c;为后续的业务逻辑处理奠定了坚实的基础。然而&#xff0c;不同的数据来源往往需要不同的验证规则&#xff0c;如何在不破坏代码的整洁性和可维护性的同时&#xff0…...

【Linux】shell基础知识点(updating)

1.输出重定向2.多命令批量执行&#xff08;; 、&&、 ||&#xff09;3.脚本不同方式执行的区别&#xff08;source、bash、sh、./&#xff09;4.理解环境变量5.export6.引号的使用last.命令相关 1.输出重定向 3种数据流&#xff1a; stdin&#xff1a;标准输入&#xf…...

Python基础练习•二

# ## Python编程入门作业 # # ### 选择题 # 1. 假设等号右侧变量都已知的情况下&#xff0c;下列哪个语句在Python中是⾮法的&#xff1f;&#xff08; B &#xff09; # A. x y z 1 # B. x (y z 1) # C. x, y y, x # D. x y # 2. 关于Python变量&#xff0c;下列…...

智慧科技照亮水利未来:深入剖析智慧水利解决方案如何助力水利行业实现高效、精准、可持续的管理

目录 一、智慧水利的概念与内涵 二、智慧水利解决方案的核心要素 1. 物联网技术&#xff1a;构建全面感知网络 2. 大数据与云计算&#xff1a;实现数据高效处理与存储 3. GIS与三维可视化&#xff1a;提升决策支持能力 4. 人工智能与机器学习&#xff1a;驱动决策智能化 …...

Vue3学习笔记(n.0)

vue指令之v-for 首先创建自定义组件&#xff08;practice5.vue&#xff09;&#xff1a; <!--* 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的在线考试系统

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

Day65 代码随想录打卡|回溯算法篇---组合总和II

题目&#xff08;leecode T40&#xff09;&#xff1a; 给定一个候选人编号的集合 candidates 和一个目标数 target &#xff0c;找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用 一次 。 注意&#xff1a;解集不能包含…...

C++ 入门03:函数与作用域

往期回顾&#xff1a; C 入门01&#xff1a;初识 C-CSDN博客C 入门02&#xff1a;控制结构和循环-CSDN博客 一、前言 在前面的文章学习中&#xff0c;我们了解了C语言的基础&#xff0c;包括如何定义变量来存储数据&#xff0c;以及如何利用输入输出流实现程序与用户之间的无缝…...

在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 进行软件包管理时&#xff0c;有时会遇到以下错误提示&#xff1a; Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporari…...

odoo中的钩子 Hooks

钩子 钩子&#xff08;Hooks&#xff09;是一种在特定时间点或特定事件发生时执行自定义代码的机制。它们允许开发者在不修改核心代码的情况下&#xff0c;为Odoo添加自定义功能或扩展现有功能。以下是关于Odoo钩子的一些关键点和常见用法&#xff1a; 一、钩子的类型 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的概述 对于点对点的链路&#xff0c;目前使用得最广泛的数据链路层协议是点对点协议 PPP (Point-to-Point Protocol)。 它主要应用于两个场景&#xff1a; 用户计算机与ISP之间的链路层协议就是点对点协议 PPP&#xff0c;1999年公布了回以在以太网上运行的PPP协…...

信息安全概述

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

UE5.3-基础蓝图类整理一

常用蓝图类整理&#xff1a; 1、获取当前关卡名&#xff1a;Get Current LevelName 2、通过关卡名打开关卡&#xff1a;Open Level(by name) 3、碰撞检测事件&#xff1a;Event ActorBeginOverlap 4、获取当前player&#xff1a;Get Player Pawn 5、判断是否相等&#xff1…...

Python面试题: 如何在 Python 中实现一个线程池?

在 Python 中&#xff0c;实现线程池可以使用内置的 concurrent.futures 模块&#xff0c;该模块提供了一个高层次的接口来管理并发任务。ThreadPoolExecutor 类是实现线程池的主要工具。以下是一些使用示例&#xff0c;展示如何在 Python 中实现和使用线程池&#xff1a; 1. …...

☺初识c++(语法篇)☺

目录 一命名空间&#xff08;namespace&#xff09;&#xff1a; 二cout与cin简述&#xff1a; 三缺省参数&#xff1a; 四函数重载&#xff1a; 五引用&#xff1a; 六内联函数: 七c中的nullptr简述&#xff1a; 一命名空间&#xff08;namespace&#xff09;&#xff1…...

process.env 管理 Vue 项目的环境变量(Vue项目中环境变量的配置及调用)

简述&#xff1a;在构建 Vue 应用时&#xff0c;管理配置是开发中的一个重要部分。不同的环境&#xff08;如开发、测试和生产&#xff09;往往需要不同的配置&#xff0c;例如 API、 基础 URL、第三方服务的密钥等。使用环境变量可以帮助我们更好地管理这些配置。这里将介绍如…...

算法工程师第六天(● 454.四数相加II ● 383. 赎金信 ● 15. 三数之和 ● 18. 四数之和 ● 总结 )

参考文献 代码随想录 一、四数相加 II 给你四个整数数组 nums1、nums2、nums3 和 nums4 &#xff0c;数组长度都是 n &#xff0c;请你计算有多少个元组 (i, j, k, l) 能满足&#xff1a; 0 < i, j, k, l < nnums1[i] nums2[j] nums3[k] nums4[l] 0 示例 1&#…...

笔记:Newtonsoft.Json 自定义一个根据typeconverter转换的JsonConverter

在 Newtonsoft.Json 中创建一个根据 TypeConverter 转换的 JsonConverter 允许你在序列化和反序列化过程中利用 .NET 的 TypeConverter 机制。这种方式特别有用&#xff0c;当你想要为不直接支持 JSON 序列化的类型提供自定义的序列化逻辑时&#xff0c;比如第三方库中的类型或…...

第241题| 确定极限中参数问题 | 武忠祥老师每日一题

解题思路&#xff1a;确定极限中的参数的方法是求这个极限&#xff1b;求极限根据类型选方法。 形可以用到三种方法&#xff1a;洛必达&#xff0c;等价&#xff0c;泰勒。 先观察题目&#xff0c;将看成一个整体&#xff0c;同时,并令,整理之后如下&#xff1a; 这里也要想办…...

线程池【开发实践】

文章目录 一、为什么要用线程池1.1 单线程的问题1.2 手动创建多线程的问题1.3 线程池的作用&#xff08;优点&#xff09;1.4 线程池的使用场景 二、线程池的基础知识2.1 线程池的核心组件2.2 JUC中的线程池架构2.3 线程池的配置参数2.4 线程池常见的拒绝策略&#xff08;可自定…...

论文辅助笔记:ST-LLM

1 时间嵌入 2 PFA&#xff08;Partial Frozen Architecture&#xff09; 3 ST_LLM 3.1 初始化 3.2 forward...

加入运动健康数据开放平台,共赢鸿蒙未来

HarmonyOS SDK运动健康服务&#xff08;Health Service Kit&#xff09;是为华为生态应用打造的基于华为帐号和用户授权的运动健康数据开放平台。在获取用户授权后&#xff0c;开发者可以使用运动健康服务提供的开放能力获取运动健康数据&#xff0c;基于多种类型数据构建运动健…...

企业化运维(7)_Zabbix企业级监控平台

官网&#xff1a;Zabbix :: The Enterprise-Class Open Source Network Monitoring Solution ###1.Zabbix部署### &#xff08;1&#xff09;zabbix安装 安装源 修改安装路径为清华镜像 [rootserver1 zabbix]# cd /etc/yum.repos.d/ [rootserver1 yum.repos.d]# vim zabbix.r…...

CTF php RCE (一)

0x01 引言 首先进入题目 应该是大部分都是一段白盒PHP审计&#xff0c;然后我们为了命令执行&#xff0c;绕过或者是钻空子等等操作&#xff0c;来拿到flag 0x02 基础 0x01 传参方式 这里有两个工具&#xff0c;hackbar和burpsuite,这两个工具非常实用 大家可以自己Googl…...

Proteus + Keil单片机仿真教程(五)多位LED数码管的静态显示

Proteus + Keil单片机仿真教程(五)多位LED数码管 上一章节讲解了单个数码管的静态和动态显示,这一章节将对多个数码管的静态显示进行学习,本章节主要难点: 1.锁存器的理解和使用; 2.多个数码管的接线封装方式; 3.Proteus 快速接头的使用。 第一个多位数码管示例 元件…...

【Linux】网络新兵连

欢迎来到 破晓的历程的 博客 ⛺️不负时光&#xff0c;不负己✈️ 引言 在上一篇博客中&#xff0c;我们简单的介绍了一些Linux网络一些比较基本的概念。本篇博客我们将开始正式学习Linux网络套接字的内容&#xff0c;那么我们开始吧&#xff01; 1.网络中的地址管理 大家一…...