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

目录

  • 一、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.mfbz.cn/a/499284.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

政安晨:专栏目录【TensorFlow与Keras机器学习实战】

政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras机器学习实战 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff01; 本篇是作者政安晨的专栏《TensorFlow与Keras机器…

【职场攻略】撰写求职信的艺术:如何用AI技术让你脱颖而出

AI与求职的完美结合&#xff1a;会话式AI产品如何助力你的求职之路&#xff1f; 在当今竞争激烈的求职市场中&#xff0c;一封精心准备的求职信可以为你打开通往理想工作的大门。一封好的求职信不仅能展示你的专业技能和工作经验&#xff0c;还能体现你对职位的热情和对公司文化…

labelme AI 模型运用

一、lebelme 1、界面介绍 点击上图位置&#xff0c;选择对应的模型。这里我每个模型都测试了一下&#xff0c;EfficientSam这个模型最好用&#xff0c;准确率和速度都ok。 2、使用方法 目标框标注方法&#xff1a;点左上角【编辑】-> 【Create Ai-Mask】就可以标志了&…

【智能家居项目】RT-Thread版本——DHT11获取温湿度 | MQTT上传到服务器 | 服务器控制外设

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《智能家居项目》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 这篇文章中&#xff0c;本喵将使用RT-Thread Studio来实现这个智能家居的项目&#xff0c;最终…

AXS2003B 爱协生 2.4W单通道 AB类音频功率放大器 兼容LM4890 低成本

AXS2003B 是一颗单通道AB类音频功率放大器。在5V电源供电&#xff0c;THDN10%&#xff0c;4欧姆负载上可以输出2.4W 的功率。 AXS2003B优异的噪声和THD指标可以提供高品质的音频信号放大。极少的外围元件就能提供芯片稳定工作&#xff0c;大大减少了PCB面积并降低成本。 AXS20…

SSL证书一年多少钱?有便宜的吗?

SSL安全证书的价格因其类型、品牌、验证级别、附加功能&#xff08;如多域名支持、通配符功能等&#xff09;以及购买时长&#xff08;通常以年为单位&#xff09;的不同而有所差异。以下是大致的价格范围&#xff1a; 永久免费SSL证书_永久免费https证书_永久免费ssl证书申请…

广告买量的数据驱动策略:从归因到精准投放

在广告买量场景下&#xff0c;数据驱动一定是有意义的。对中小型企业和产品而言&#xff0c;起量和精准是重点&#xff0c;毕竟他们更关注ROI&#xff08;短期利润&#xff09;&#xff0c;这也是效果广告专注中小型企业的原因。而大企业的核心是把流量合理导入自身构建的生态中…

哲学家带你深♂入了解文件操作

目录 一、文件指针 二、文件的打开与关闭 三、顺序读写函数的介绍 四、文件的随机读写 1、fseek 2、ftell 3、rewind 总结 前言 c语言中的文件操作虽然不怎么常用但也是非常重要的知识&#xff0c;今天由本哲学家带大家深♂入了解c语言文件操作。 一、文件指针 每个被使用的文…

Day24:回溯法 LeedCode 77.组合

回溯法解决的问题都可以抽象为树形结构 for循环就是遍历集合区间&#xff0c;可以理解一个节点有多少个孩子&#xff0c;这个for循环就执行多少次。 从图中看出for循环可以理解是横向遍历&#xff0c;backtracking&#xff08;递归&#xff09;就是纵向遍历&#xff0c;这样就把…

virtualbox 日常运维

前言 虽然平常以macOS和Linux作为主打工作环境&#xff0c;但还是有很多需要用到windows的时候&#xff0c;如camtasia和券商QMT软件。 在二手ThinkPad P53上安装了几个windows虚机&#xff0c;作为测试环境。Mac笔记本远程桌面连接嫌麻烦&#xff0c;还是命令行舒服。MacOS自…

SAP gui 组服务器 提示 Error service sapmsPRD unknown

/etc/hosts 追加IP地址和域名的配对关系 /etc/services 追加 sapms[sid] 3601/tcp

java 抠取红色印章(透明背景)

一个亲戚让我帮他把照片里的红色印章抠出来&#xff0c;&#xff0c;&#xff0c;记录下处理过程&#xff0c;代码如下&#xff0c;可直接用&#xff1a; public static void signatureProcess(String sourceImagePath, String targetImagePath) {Graphics2D graphics2D null…

2015年认证杯SPSSPRO杯数学建模B题(第二阶段)替换式密码全过程文档及程序

2015年认证杯SPSSPRO杯数学建模 B题 替换式密码 原题再现&#xff1a; 历史上有许多密码的编制方法。较为简单的是替换式密码&#xff0c;也就是将文中出现的字符一对一地替换成其它的符号。对拼音文字而言&#xff0c;最简单的形式是单字母替换加密&#xff0c;也就是以每个…

Nodejs 16与 gitbook搭建属于你自己的书本网站-第一篇

最近想重新搭建一个网站来存放自己的相关知识点&#xff0c;并向网络公开&#xff0c;有个hexo博客其实也不错的&#xff0c;但是总感觉hexo很多花里胡哨的玩意&#xff0c;导致挂载的博客异常卡&#xff0c;这样反而不利于我自己回顾博客了&#xff0c;于是我就开始钻研这个鬼…

Android逆向-数据修改逻辑修改视图修改

目录 0x00 相关工具及环境 0x01 APP逆向 - 数据修改 0x02 APP逆向 - 逻辑修改 0x03 APP逆向 - 视图修改 希望和各位大佬一起学习&#xff0c;如果文章内容有错请多多指正&#xff0c;谢谢&#xff01; 个人博客链接&#xff1a;CH4SER的个人BLOG – Welcome To Ch4sers B…

Git Fork后的仓库内容和原仓库保持一致

Git Fork后的仓库内容和原仓库保持一致 ①Fork原仓库内容到自己仓库 ②将项目内容下载到本地 ③使用git命令获取原仓库内容&#xff0c;将原仓库的最新内容合并到自己的分支上并推送 下面从第三步开始演示~ 这里以码云上的若依项目为演示项目 ③使用git命令获取原仓库内容 …

什么裤型的裤子最百搭?男生比较好看的裤子品牌分享

很多男生每隔一段都会选择一些新的裤子&#xff0c;但是现在市面上的裤子种类和风格太多&#xff0c;并且有不少材质劣质、细节设计差的品牌混杂在其中&#xff0c;大家一不小心就选到质量不好的裤子。 所以如何选择到合适、质量好的裤子确实是一个让人头疼的问题&#xff0c;…

AcWing 4609:火柴棍数字 ← 贪心算法

【题目来源】 https://www.acwing.com/problem/content/4612/【题目描述】 给定 n 个火柴棍&#xff0c;你可以用它们摆出数字 0∼9。 摆出每个数字所需要的具体火柴棍数量如下图所示&#xff1a; 请你用这些火柴棍摆成若干个数字&#xff0c;并把这些数字排成一排组成一个整数…

Netty学习——源码篇5 EventLoop 备份

1 Reactor线程模型 Reactor线程模型 中对Reactor的三种线程模型——单线程模型、多线程模型、主从多线程模型做了介绍&#xff0c;这里具体分析Reactor在Netty中的应用。 1.1单线程模型 单线程模型处理流程如下图&#xff1a; 单线程模型&#xff0c;即Accept的处理和Handler…

(科研篇)如何做科研

1.科研周期&#xff1a; 2.CCF列表 1.搜索论文&#xff08;顶会&#xff09; 2.谷歌学术检索 3.如何阅读文献 最重要的部分是abstract introduction 和related work&#xff0c;要明白某个东西的历史&#xff0c;从而进一步发现的缺陷&#xff0c;然后通过实现实验去证明。 通…