【Qt】常用控件(输入类)

news2024/11/24 12:41:52

目录

  • 一、Line Edit
  • 二、Text Edit
  • 三、ComBo
  • 四、DateTimeEdit
  • 五、Slider

一、Line Edit

QLineEdit 用来表示单行输入框,可以输入一段文本,但是不能换行。

属性说明
test输入框中的文本
inputMask输入内容格式约束
maxLength最大长度
frame是否添加边框
echoMode显示方式,normal,Password:隐藏,使用*代替,NoEcho:不显示任何字符
alignment文本对齐方式
dragEnabled是否允许拖拽
readOnly是否不可修改
placeHolderTest输入框为空时,显示的提示信息
clearButtonEnabled清除按钮

实例

获取lineEdit中信息打印出来

在ui中拖入几个lineEdit以及label和pushbutton

在这里插入图片描述

给提交设置槽函数
在这里插入图片描述

#include "widget.h"
#include "ui_widget.h"
#include<QLineEdit>
#include<QDebug>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    //编辑用户名
    //默认显示内容
    ui->lineEdit_name->setPlaceholderText("请输入用户名");

    //编辑密码
    //默认显示内容
    ui->lineEdit_password->setPlaceholderText("请输入密码");
    //内容显示为密码格式
    ui->lineEdit_password->setEchoMode(QLineEdit::Password);
    //添加清除按钮
    ui->lineEdit_password->setClearButtonEnabled(true);

    //编辑手机号
    ui->lineEdit_phone->setPlaceholderText("请输入手机号");

}

Widget::~Widget()
{
    delete ui;
}


void Widget::on_pushButton_clicked()
{
    QString gender = ui->radioButton_male->isChecked()?"男":"女";
    qDebug()<<"用户名:"<<ui->lineEdit_name->text()
         <<"密码:"<<ui->lineEdit_password->text()
        <<"性别"<<gender
       <<"电话号:"<<ui->lineEdit_phone->text();

}

//复选框槽函数,用来显示LineEdit中密码是否可见
void Widget::on_checkBox_toggled(bool checked)
{
    if(checked)
    {
        ui->lineEdit_password->setEchoMode(QLineEdit::Normal);
    }else
    {
        ui->lineEdit_password->setEchoMode(QLineEdit::Password);
    }
}

实现效果
请添加图片描述

二、Text Edit

QTextEdit 表示多行输入框.也是一个富文本& markdown编辑器.
并且能在内容超出编辑框范围时自动提供滚动条.

属性说明
markdown输入框内持有的内容.支持 markdown 格式.能够自动的对markdown 文本进行渲染成 html
html输入框内持有的内容.可以支持大部分 html标签.包括 img 和 table 等
placeHolderText输入框为空时提示的内容,
readOnly是否只读
undoRedoEnable是否开启undo、redo功能 ctrl+z触发undo,ctrl+y触发redo
autoFormating开启自动格式化
tabstopWidth按下缩进占多少空间
overwirteMode是否开启覆盖模式
信号说明
textChanged()文本内容被修改
selectionChanged()选中区域被修改
cursorPositionChanged()光标位置被修改
undoAvaliable(bool)undo操作时触发
redoAvaliable(bool)redo操作时触发
copyAvaliable(bool)文本被选中/取消时触发

实例:

先在ui中拖入需要的控件,一个TestEdit
请添加图片描述

//修改TestEdit中内容触发该信号  testChanged()
void Widget::on_textEdit_textChanged()
{
    qDebug()<<"textchanged: "<<ui->textEdit->toPlainText();
}
//选择TestEdit中内容触发信号  selectionChanged()
void Widget::on_textEdit_selectionChanged()
{
    QTextCursor cursor = ui->textEdit->textCursor();
    qDebug()<<"selectionChanged: "<<cursor.selectedText();
}
//光标位置移动时触发
void Widget::on_textEdit_cursorPositionChanged()
{
    QTextCursor cursor = ui->textEdit->textCursor();
    qDebug()<<"cursorPositionChanged: "<<cursor.position();
}

三、ComBo

QComboBox 表示下拉框

属性说明
currentText当前选中的文本
currentIndex当前选中的条目下标
editable是否允许被修改
iconSize下拉框大小
maxCount最多允许多少个条目
addItem(const QString&)添加一个条目
currentText()获取当前条目的文本内容

信号

信号说明
activited(int)
activited(const QString&)
当用户选择一个选项时发出,点开下拉框,鼠标滑过某个选项,但是还没有做出选择
currentIndexChange(int)
currentIndexChange(const QString&)
当前选择改变时发生
editTextChange(const QString&)当编辑框中内容发生改变时发出

实例

显示下拉框中内容

方法① 使用代码设置条目内容

在这里插入图片描述

方法② 右键控件点击编辑项目

在这里插入图片描述

从文件中读取下拉列表条目

在这里插入图片描述

    //读取文件中内容,将文件中内容读取作为combobox的选项
    std::ifstream file("C:/Users/HP/Desktop/config.txt");
    if(!file.is_open())
    {
        qDebug()<<"读取失败";
        return;
    }
    //按行读取文本
    std::string line;
    while(std::getline(file,line))
    {
        //取到的内容设置到下拉框中
        //QString中静态方法,将string转化为QString
        ui->comboBox->addItem(QString::fromStdString(line));
    }
    file.close();

四、DateTimeEdit

属性说明
dateTime时间日期的值
date单纯日期的值
time单纯时间的值
displayFormat时间的日期格式
minimumDateTime最小日期时间
maximumDateTime最大日期时间
timeSpecQt::LocalTime 显示本地时间
Qt::UTC 显示协调世界时
Qt::OffsetFromUTC 显示相对UTC偏移量

信号

属性说明
dateChanged(QDate)日期改变时触发
timeChanged(QTime)时间改变时触发
dateTimeChanged(QDateTime)时间日期任意一个改变时触发

实例
计算两个date之间的天数差
在这里插入图片描述

在这里插入图片描述

五、Slider

QSlider表示一个滑动条

属性说明
value持有的数值
minimum最小值
maximum最大值
singleStep按下方向键时改变的步长
sliderPosition滑动条显示的初始位置
tracking外观是否跟随数值变化
orientation滑动条是水平还是垂直
invertedAppearance是否翻转滑动跳长方向
tickPosition刻度的位置
tickInterval刻度的密集程度

信号

属性说明
valueChanged(int)数值变化时发出
rangeChanged(int,int)范围变化时发出

实例

通过滑动条改变窗口大小

在这里插入图片描述

为滑动条增加快捷键控制窗口大小

#include "widget.h"
#include "ui_widget.h"
#include<QDebug>
#include<QRect>
#include<QShortcut>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    ui->horizontalSlider->setMinimum(0);
    ui->horizontalSlider->setMaximum(1800);
    ui->horizontalSlider->setSliderPosition(800);

    QShortcut* shortcut1 = new QShortcut(this);
    shortcut1->setKey(QKeySequence("-"));
    connect(shortcut1,&QShortcut::activated,this,&Widget::Sub);

    QShortcut* shortcut2 = new QShortcut(this);
    shortcut2->setKey(QKeySequence("="));
    connect(shortcut2,&QShortcut::activated,this,&Widget::Add);

}

Widget::~Widget()
{
    delete ui;

}

void Widget::Add()
{
    int value = ui->horizontalSlider->value();
    ui->horizontalSlider->setValue(value+20);
}

void Widget::Sub()
{
    int value = ui->horizontalSlider->value();
    ui->horizontalSlider->setValue(value-20);
}


void Widget::on_horizontalSlider_valueChanged(int value)
{
    QRect rect = this->geometry();
    this->setGeometry(rect.x(),rect.y(),value,rect.height());
}

效果
请添加图片描述

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

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

相关文章

AES加密解密算法

一&#xff0c;AES算法概述 AES属于分组加密&#xff0c;算法明文长度固定为128位&#xff08;单位是比特bit&#xff0c;1bit就是1位&#xff0c;128位等于16字节&#xff09; 而密钥长度可以是128、192、256位 当密钥为128位时&#xff0c;需要循环10轮完成加密&#xff0…

OpenEuler华为欧拉系统安装教程及联网配置

OpenEuler简介 openEuler是一款开源操作系统。当前openEuler内核源于Linux&#xff0c;支持鲲鹏及其它多种处理器&#xff0c;能够充分释放计算芯片的潜能&#xff0c;是由全球开源贡献者构建的高效、稳定、安全的开源操作系统&#xff0c;适用于数据库、大数据、云计算、人工智…

人脸检测项目 | 基于C++在英特尔+ARM-CPU上部署人脸检测算法_推理速度可达1000fps

项目应用场景 面向在英特尔ARM CPU 平台部署轻量级的人脸检测算法&#xff0c;要求人脸检测算法的速度是能够达到实时的的场景&#xff0c;项目采用 C 开发&#xff0c;支持跨平台移植到包括 Linux、Windows 等 项目效果&#xff1a; 项目细节 > 具体参见项目 README.md (1…

【LeetCode: 330. 按要求补齐数组 + 贪心 + 构造区间】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

linux进程退出之exit与_exit

linux进程退出之exit与_exit _exitexit流程清理函数atexit()函数&#xff1a;on_exit()函数&#xff1a; _exit /* Terminate program execution with the low-order 8 bits of STATUS. */ /** status参数定义了进程的终止状态&#xff0c;父进程可以通过wait&#xff08;&am…

使用open3d分离背景和物体点云

一、代码 方法简单介绍 RANSAC&#xff08;随机采样一致性&#xff09;是一种常用的分割算法&#xff0c;通常用于从点云中分割出最大的平面&#xff08;如地面、墙壁等&#xff09;。RANSAC速度相对较快&#xff0c;特别是当点云数据量不是很大时。在物体与背景之间存在明显…

蓝桥杯 本质上升序列

题目描述: 小蓝特别喜欢单调递增的事物。 在一个字符串中&#xff0c;如果取出若干个字符&#xff0c;将这些字符按照在字符串中的顺序排列后是单调递增的&#xff0c;则成为这个字符串中的一个单调递增子序列。 例如&#xff0c;在字符串 lanqiao 中&#xff0c;如果取出字符…

蓝桥杯省赛刷题——题目 2656:刷题统计

刷题统计OJ链接&#xff1a;蓝桥杯2022年第十三届省赛真题-刷题统计 - C语言网 (dotcpp.com) 题目描述 小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天做 a 道题目&#xff0c;周六和周日每天做 b 道题目。请你帮小明计算&#xff0c;按照计划他将在第几…

Segger Embedded Studio IDE使用体验——默认的Section和Linker的设置

Segger Embedded Studio IDE使用体验之一——默认的Section和Linker的设置 一、简介二、操作2.1 编译后代码分析2.1.1 符号浏览器2.1.2 读取elf文件和map文件 2.2 调试2.2.1 查看变量2.2.2 设置供电 2.3 运行环境设置2.3.1 编译器2.3.2 汇编器2.3.3 包含其他文件2.3.4 .bss和.d…

iOS问题记录 - App Store审核新政策:隐私清单 SDK签名(持续更新)

文章目录 前言开发环境问题描述问题分析1. 隐私清单 & SDK签名1.1. 隐私清单 - 数据使用声明1.2. 隐私清单 - 所用API原因描述1.3. SDK签名 2. 即将发布的第三方SDK要求 解决方案最后 前言 前段时间用Flutter开发的iOS App提交了新版本&#xff0c;结果刚过两分钟就收到了…

基于springboot实现旅游网站系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现旅游网站系统演示 摘要 随着科学技术的飞速发展&#xff0c;各行各业都在努力与现代先进技术接轨&#xff0c;通过科技手段提高自身的优势&#xff0c;旅游网站当然也不能排除在外&#xff0c;随着旅游网站的不断成熟&#xff0c;它彻底改变了过去传统的旅游…

魔改一个过游戏保护的CE

csdn审核不通过 网易云课堂有配套的免费视频 int0x3 - 主页 文章都传到github了 Notes/外挂/魔改CE at master MrXiao7/Notes GitHub 为什么要编译自己的CE 在游戏逆向的过程中&#xff0c;很多游戏有保护&#xff0c;我们运行原版CE的时候会被检测到 比如我们开着CE运…

【AXIS】AXI-Stream FIFO设计实现(四)——异步时钟

前文介绍了几种同步时钟情况下的AXI Stream FIFO实现方式&#xff0c;一般来说&#xff0c;FIFO也需要承担异步时钟域模块间数据传输的功能&#xff0c;本文介绍异步AXIS FIFO的实现方式。 如前文所说&#xff0c;AXI-Stream FIFO十分类似于FWFT异步FIFO&#xff0c;推荐参考前…

AtCoder Beginner Contest 347 (ABCDEF题)视频讲解

A - Divisible Problem Statement You are given positive integers N N N and K K K, and a sequence of length N N N, A ( A 1 , A 2 , … , A N ) A(A_1,A_2,\ldots,A_N) A(A1​,A2​,…,AN​). Extract all elements of A A A that are multiples of K K K, divi…

2-HDFS常用命令及上传下载流程

HDFS NameNode 安全模式(safemode) 当NameNode被重启的时候&#xff0c;自动进入安全模式 在安全模式中&#xff0c;NameNode首先会触发edits_inprogress文件的滚动。滚动完成之后&#xff0c;更新fsimage文件 更新完成之后&#xff0c;NameNode会将fsimage文件中的元数据加…

新闻管理系统(源码+文档)

新闻管理系统&#xff08;小程序、ios、安卓都可部署&#xff09; 文件包含内容程序简要说明含有功能项目截图客户端新闻详情新闻首页分类退出登录个人中心拨打客服热线注册界面个人资料新闻评论成功 管理端用户管理分类管理新闻管理 文件包含内容 1、搭建视频 2、流程图 3、开…

特征融合篇 | 利用RT-DETR的AIFI去替换YOLOv8中的SPPF(附2种改进方法)

前言:Hello大家好,我是小哥谈。RT-DETR模型是一种用于目标检测的深度学习模型,它基于transformer架构,特别适用于实时处理序列数据。在RT-DETR模型中,AIFI(基于注意力的内部尺度特征交互)模块是一个关键组件,它通过引入注意力机制来增强模型对局部和全局信息的处理能力…

网络编程的学习1

网络编程 在网络通信协议下&#xff0c;不同计算机上运行的程序&#xff0c;进行数据传输。 三要素 ip&#xff1a;设备在网络中的地址&#xff0c;是唯一的标识。 ipv4:采取32位地址长度&#xff0c;分成4组。 ipv6&#xff1a;采用128位地址长度&#xff0c;分成8组。 …

阿里云优惠券领取方法大公开,省钱不再是难事

阿里云作为国内领先的云计算服务提供商&#xff0c;为广大用户提供了丰富的云产品和解决方案。为了吸引用户上云&#xff0c;阿里云经常推出各种优惠活动&#xff0c;其中最受用户欢迎的就是阿里云优惠券。那么&#xff0c;阿里云优惠券究竟是什么呢&#xff1f;我们又该如何领…

pygame通过重心坐标 用纹理填充三角形

texture_x int(alpha * texture_image.get_width()) texture_y int(beta * texture_image.get_height())为什么没有gama 2024/3/30 15:45:52 在使用重心坐标进行纹理映射时&#xff0c;通常是通过计算 alpha 和 beta 来确定纹理图片上的对应位置&#xff0c;而 gamma 通常是…