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;然后根据数据通过回调的方式实现数据的更…

GET正常,POST获取不到数据

环境复现 前台&#xff1a; wx.request({url: xxxxxx,method: POST,header: {"content-type": "application/json"},success(res) {console.log(res);},fail(err) {console.error(网络请求失败, err);}}); 后端使用springboot&#xff1a; RequestMappin…

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

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

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

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

C++原创娱乐系列抽搐的井号

玩法&#xff1a; 一次性输入大量w&#xff0c;s&#xff0c;a&#xff0c;d&#xff0c;然后即可欣赏抽搐的井号 上代码 #include"bits/stdc.h" #include"Windows.h" using namespace std; int main(){int w10,a10;char n;while(1){for(int i0;i<w;…

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;还拥有高度…

flowable框架 6.8 自定义函数方法

为了比对流程中条件的checkbox&#xff0c;由于本身elui的checkbox是乱序的&#xff0c;所以需要这个自定义函数来判断 环境&#xff1a;jdk1.8 flowable6.8 springboot2 1.自定义函数 import org.springframework.stereotype.Component;import java.util.Arrays; import ja…

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

如今&#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;生成式人工智能的惊人崛起进一步加剧了这种紧迫性。据《未…

如何快速学好一门新技术

目录 学习步骤 1. 基本了解 2. 快速上手 3. 系统学习 4. 主动运用 5. 了解原理 6. 深入源码 7. 修改源码 8. 推陈出新 学到哪一步? 无论学习任何编程技术,都可以遵循以下步骤: 学习步骤 1. 基本了解 首先了解这项技术的用途、优缺点及适用场景。建议通过网上的经…

Apache Hadoop文件上传、下载、分布式计算案例初体验

上篇&#xff1a;Apache Hadoop完全分布式集群搭建无坑指南-CSDN博客 通过上篇&#xff0c;我们搭建了完整的Hadoop集群&#xff0c;此篇我们简单通过集群上传和下载文件&#xff0c;同时测试分布式worldCount案例。后续的篇章再对分布式计算、分布式存储作更深的理解。 上传…

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

前置二维空间的各种变换笔记&#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;并…

如何用 Python 绕过 cloudflare(5秒盾) 抓取数据:也不是很难嘛!

大家好!我是爱摸鱼的小鸿,关注我,收看每期的编程干货。 逆向是爬虫工程师进阶必备技能,当我们遇到一个问题时可能会有多种解决途径,而如何做出最高效的抉择又需要经验的积累。本期文章将以实战的方式,带你全面了解 cloudflare(5秒盾) 以及如何绕过使用 cloudflare 服务…