QT:输入类控件的使用

LineEdit

录入个人信息

#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
#include <QString>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 初始化输入框ui->lineEdit_name->setPlaceholderText("输入姓名");ui->lineEdit_name->setClearButtonEnabled(true);ui->lineEdit_passwd->setPlaceholderText("输入密码");ui->lineEdit_passwd->setClearButtonEnabled(true);ui->lineEdit_passwd->setEchoMode(QLineEdit::Password);ui->lineEdit_tele->setPlaceholderText("输入电话");ui->lineEdit_tele->setClearButtonEnabled(true);ui->lineEdit_tele->setInputMask("000-0000-0000");
}Widget::~Widget()
{delete ui;
}void Widget::on_pushButton_clicked()
{// 当点击的时候把信息拿出来QString gender = ui->radioButton_male->isChecked() ? "男" : "女";qDebug() << "姓名: " << ui->lineEdit_name->text();qDebug() << "密码: " << ui->lineEdit_passwd->text();qDebug() << "性别: " << gender;qDebug() << "电话: " << ui->lineEdit_tele->text();
}

在这里插入图片描述

在这里插入图片描述

检验两次密码是否相同

#include "widget.h"
#include "ui_widget.h"
#include <QString>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 设置两个输入框是密码模式ui->lineEdit->setEchoMode(QLineEdit::Password);ui->lineEdit_2->setEchoMode(QLineEdit::Password);
}Widget::~Widget()
{delete ui;
}void Widget::on_lineEdit_textEdited(const QString &arg1)
{QString s1 = ui->lineEdit->text();QString s2 = ui->lineEdit_2->text();if(s1.isEmpty() && s2.isEmpty())ui->label->setText("密码是空");else if(s1 == s2)ui->label->setText("密码一致");elseui->label->setText("密码不相同");
}void Widget::on_lineEdit_2_textEdited(const QString &arg1)
{QString s1 = ui->lineEdit->text();QString s2 = ui->lineEdit_2->text();if(s1.isEmpty() && s2.isEmpty())ui->label->setText("密码是空");else if(s1 == s2)ui->label->setText("密码一致");elseui->label->setText("密码不相同");
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

切换显示密码

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 初始化模式ui->lineEdit->setEchoMode(QLineEdit::Password);
}Widget::~Widget()
{delete ui;
}void Widget::on_checkBox_toggled(bool checked)
{if(checked)ui->lineEdit->setEchoMode(QLineEdit::Normal);elseui->lineEdit->setEchoMode(QLineEdit::Password);
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Text Edit

表示的是多行输入框,并且还能提供滚动条

获取多行输入框的内容

当多行输入框内容改变后,把对应的信息传递到label中即可

#include "widget.h"
#include "ui_widget.h"
#include <QString>
#include <QDebug>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);
}Widget::~Widget()
{delete ui;
}void Widget::on_textEdit_textChanged()
{QString content = ui->textEdit->toPlainText();qDebug() << content;ui->label->setText(content);
}

在这里插入图片描述

Combo Box

表示的是下拉框

使用下拉框模拟点餐系统

#include "widget.h"
#include "ui_widget.h"
#include <QString>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);ui->comboBox->addItem("汉堡1");ui->comboBox->addItem("汉堡2");ui->comboBox_2->addItem("饮料1");ui->comboBox_2->addItem("饮料2");ui->comboBox_3->addItem("小吃1");ui->comboBox_3->addItem("小吃2");ui->comboBox_3->addItem("小吃3");
}Widget::~Widget()
{delete ui;
}void Widget::on_pushButton_clicked()
{QString content = "汉堡选择: " + ui->comboBox->currentText();content += " 饮料选择: " + ui->comboBox_2->currentText();content += " 小吃选择: " + ui->comboBox_3->currentText();ui->label->setText(content);
}

在这里插入图片描述

在这里插入图片描述

Spin Box

这个表示的是微调框,是带有按钮的输入框,可以用来输入整数或者浮点数,通过按钮来修改数值的大小

调整食物的份数

#include "widget.h"
#include "ui_widget.h"
#include <QDebug>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);ui->comboBox->addItem("汉堡1");ui->comboBox->addItem("汉堡2");ui->comboBox_2->addItem("饮料1");ui->comboBox_2->addItem("饮料2");ui->comboBox_3->addItem("小吃1");ui->comboBox_3->addItem("小吃2");ui->comboBox_3->addItem("小吃3");ui->spinBox->setValue(1);ui->spinBox->setRange(1, 10);ui->spinBox_2->setValue(1);ui->spinBox_2->setRange(1, 10);ui->spinBox_3->setValue(1);ui->spinBox_3->setRange(1, 10);}Widget::~Widget()
{delete ui;
}void Widget::on_pushButton_clicked()
{qDebug() << ui->comboBox->currentText() << " : " << ui->spinBox->value();qDebug() << ui->comboBox_2->currentText() << " : " << ui->spinBox_2->value();qDebug() << ui->comboBox_3->currentText() << " : " << ui->spinBox_3->value();
}

在这里插入图片描述

List Widget

使用ListWidget

#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
#include <QString>
#include <QListWidgetItem>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);ui->listWidget->addItem("C++");ui->listWidget->addItem("Java");ui->listWidget->addItem("Python");
}Widget::~Widget()
{delete ui;
}void Widget::on_listWidget_currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
{if(current && previous)qDebug() << "当前选中: " << current->text() << "之前选中" << previous->text();
}void Widget::on_pushButton_clicked()
{// 获取到输入框内容QString text = ui->lineEdit->text();// 把内容加到列表中ui->listWidget->addItem(text);
}void Widget::on_pushButton_2_clicked()
{// 获取当前选中的一行int row = ui->listWidget->currentRow();ui->listWidget->takeItem(row);
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Table Widget

这个控件表示的是一个表格控件:

使用QTableWidget

#include "widget.h"
#include "ui_widget.h"
#include <QString>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 创建三行ui->tableWidget->insertRow(0);ui->tableWidget->insertRow(1);ui->tableWidget->insertRow(2);// 创建三列ui->tableWidget->insertColumn(0);ui->tableWidget->insertColumn(1);ui->tableWidget->insertColumn(2);// 设置一下列名ui->tableWidget->setHorizontalHeaderItem(0, new QTableWidgetItem("学号"));ui->tableWidget->setHorizontalHeaderItem(1, new QTableWidgetItem("姓名"));ui->tableWidget->setHorizontalHeaderItem(2, new QTableWidgetItem("年龄"));// 设置初始数据ui->tableWidget->setItem(0, 0, new QTableWidgetItem("1001"));ui->tableWidget->setItem(0, 1, new QTableWidgetItem("张三"));ui->tableWidget->setItem(0, 2, new QTableWidgetItem("20"));ui->tableWidget->setItem(0, 0, new QTableWidgetItem("1002"));ui->tableWidget->setItem(0, 1, new QTableWidgetItem("李四"));ui->tableWidget->setItem(0, 2, new QTableWidgetItem("24"));ui->tableWidget->setItem(0, 0, new QTableWidgetItem("1003"));ui->tableWidget->setItem(0, 1, new QTableWidgetItem("王五"));ui->tableWidget->setItem(0, 2, new QTableWidgetItem("23"));
}Widget::~Widget()
{delete ui;
}void Widget::on_pushButton_add_row_clicked()
{// 获取行数 + 新增一行int row = ui->tableWidget->rowCount();ui->tableWidget->insertRow(row);
}void Widget::on_pushButton_add_cal_clicked()
{// 获取列数 + 新增一列int col = ui->tableWidget->columnCount();ui->tableWidget->insertColumn(col);// 设置列名QString colname = ui->lineEdit->text();ui->tableWidget->setHorizontalHeaderItem(col, new QTableWidgetItem(colname));
}void Widget::on_pushButton_del_row_clicked()
{// 删除指定行int row = ui->tableWidget->currentRow();ui->tableWidget->removeRow(row);
}void Widget::on_pushButton_del_cal_clicked()
{// 删除指定列int col = ui->tableWidget->currentColumn();ui->tableWidget->removeColumn(col);
}

在这里插入图片描述

Tree Widget

这个控件中的元素都是一个QTreeWidgetItem,每一个都可以包含多个文本和图标,每个文本和图标是一个列

使用QTreeWidget

#include "widget.h"
#include "ui_widget.h"
#include <QString>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);ui->treeWidget->setHeaderLabel("动物");QTreeWidgetItem* treeitem1 = new QTreeWidgetItem();treeitem1->setText(0, "猫");ui->treeWidget->addTopLevelItem(treeitem1);QTreeWidgetItem* treeitem2 = new QTreeWidgetItem();treeitem2->setText(0, "鸟");ui->treeWidget->addTopLevelItem(treeitem2);QTreeWidgetItem* treeitem3 = new QTreeWidgetItem();treeitem3->setText(0, "鸡");ui->treeWidget->addTopLevelItem(treeitem3);
}Widget::~Widget()
{delete ui;
}void Widget::on_pushButton_clicked()
{QString itemname = ui->lineEdit->text();if(itemname.isEmpty())return;QTreeWidgetItem* treeitem = new QTreeWidgetItem();treeitem->setText(0, itemname);ui->treeWidget->addTopLevelItem(treeitem);}void Widget::on_pushButton_2_clicked()
{QString itemname = ui->lineEdit->text();if(itemname.isEmpty())return;// 获取一下当前选中的信息QTreeWidgetItem* currentitem = ui->treeWidget->currentItem();if(currentitem == NULL)return;// 构造新的ItemQTreeWidgetItem* newitem = new QTreeWidgetItem();newitem->setText(0, itemname);// 添加到选中节点currentitem->addChild(newitem);currentitem->setExpanded(true);
}void Widget::on_pushButton_3_clicked()
{// 获取一下当前选中的信息QTreeWidgetItem* currentitem = ui->treeWidget->currentItem();if(currentitem == NULL)return;// 获取一下父节点QTreeWidgetItem* parent = currentitem->parent();if(parent == NULL)ui->treeWidget->takeTopLevelItem(ui->treeWidget->indexOfTopLevelItem(currentitem));elseparent->removeChild(currentitem);
}

在这里插入图片描述

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

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

相关文章

文本嵌入的隐私风险:从嵌入向量重建原始文本的探索

随着大型语言模型&#xff08;LLMs&#xff09;的广泛应用&#xff0c;文本嵌入技术在语义相似性编码、搜索、聚类和分类等方面发挥着重要作用。然而&#xff0c;文本嵌入所蕴含的隐私风险尚未得到充分探讨。研究提出了一种控制生成的方法&#xff0c;通过迭代修正和重新嵌入文…

嵌入式硬件中PCB走线与过孔的电流承载能力分析

简介 使用FR4敷铜板PCBA上各个器件之间的电气连接是通过其各层敷着的铜箔走线和过孔来实现的。 由于不同产品、不同模块电流大小不同,为实现各个功能,设计人员需要知道所设计的走线和过孔能否承载相应的电流,以实现产品的功能,防止过流时产品烧毁。 文中介绍设计和测试FR4敷…

【探索】文字游侠AI新时代,每天5分钟自动化创作图文月入1万+,十分适合新手小白,附上渠道和教程(全面)

在这个信息爆炸的时代&#xff0c;内容创作者面临着空前的竞争。为了在今日头条这样的平台上脱颖而出并获取稳定收入&#xff0c;他们需要找到更高效、更创新的方法。而今&#xff0c;一款全新的AI工具正引领着一场革命&#xff0c;彻底改变了内容创作的生态。 自从GPT问世以来…

Quad SPI的DLP优化原理

1 前言 1.1 Quad SPI Flash QSPI的I/O接口如图1所示&#xff0c;其中&#xff1a; ① CS&#xff1a;片选信号&#xff0c;低电平有效&#xff08;FLASH被选中&#xff09;&#xff1b; ② CK&#xff1a;时钟信号&#xff0c;由主设备产生&#xff1b; ③ SI/SO&#xff1a; …

开源的 RAG 和 workflow 技术对比调研

一、先来了解一下开源的技术有哪些&#xff0c;怎么样 我自己就是做RAG工作的&#xff0c;但是还是想关注一下开源的技术做到了什么程度。 所以调研了很长时间&#xff0c;也体验了一下。这里写一篇文章来分享一下结果。 我用五一的假期时间&#xff0c;来做调研&#xff0c;看…

扩展学习|本体研究进展

文献来源&#xff1a; 王向前,张宝隆,李慧宗.本体研究综述[J].情报杂志,2016,35(06):163-170. 一、本体的定义 本体概念被引入人工智能、知识工程等领域后被赋予了新的含义。然而不同的专家学者对本体的理解不同,所给出的定义也有所差异。 人工智能领域的学者Neches(1991)等人对…

常用AI工具分享 + IDEA内使用通义灵码

引言 随着人工智能技术的飞速发展&#xff0c;AI工具已经渗透到我们日常生活和工作的各个领域&#xff0c;带来了前所未有的便利。现在我将分享一下常用的AI工具&#xff0c;以及介绍如何在IDEA中使用通义灵码。 常用AI工具 1. 通义灵码 (TONGYI Lingma) - 由阿里云开发的智能…

时间复杂度空间复杂度 力扣:转轮数组,消失的数字

1. 算法效率 如何衡量一个算法的好坏&#xff1f;一般是从时间和空间的维度来讨论复杂度&#xff0c;但是现在由于计算机行业发展迅速&#xff0c;所以现在并不怎么在乎空间复杂度了下面例子中&#xff0c;斐波那契看上去很简洁&#xff0c;但是复杂度未必如此 long long Fib…

Java -- (part20)

一.Map集合 1.概述 双列集合的顶级接口 2.实现类 HashMap 特点: a.key唯一,value可重复->如果key重复了,会发生value覆盖 b.无序 c.无索引 d.线程不安全 e.可以存null键null值 数据结构: 哈希表 方法: LinkedHashMap 特点: a.key唯一,value可重复->如果ke…

PHP医院安全(不良)事件报告系统源码 vue2+element支持11大类不良事件上报、审核处理、分析改进

PHP医院安全&#xff08;不良&#xff09;事件报告系统源码 vue2element支持11大类不良事件上报、审核处理、分析改进 医院安全&#xff08;不良&#xff09;事件管理系统采用无责的、自愿的填报不良事件方式&#xff0c;有效地减轻医护人员的思想压力&#xff0c;实现以事件为…

深度学习500问——Chapter08:目标检测(6)

文章目录 8.3.7 RetinaNet 8.3.7 RetinaNet 研究背景 Two-Stage 检测器&#xff08;如Faster R-CNN、FPN&#xff09;效果好&#xff0c;但速度相对慢。One-Stage 检测器&#xff08;如YOLO、SSD&#xff09;速度快&#xff0c;但效果一般。 作者对one-stage检测器准确率不高…

QT:label标签的使用

文章目录 设置不同格式的文本显示图片文本对齐/自动换行/缩进/边距 设置不同格式的文本 在文本格式中&#xff0c;存在富文本&#xff0c;makedown格式的文本&#xff0c;还有纯文本&#xff0c;下面就依据这三个进行举例 #include "widget.h" #include "ui_w…

缩小COCO数据集

在运行YOLOS模型的过程中&#xff0c;需要使用到COCO2017这个数据集&#xff0c;但从实验运行来看&#xff0c;其所需时间无疑是相当漫长&#xff0c;预计可能需要近几十天才能完成&#xff0c;因此便考虑缩小COCO数据集大小&#xff0c;即尽可能在遵循其分布的情况下&#xff…

导游讲解口才技巧心得体会总结(3篇)

导游讲解口才技巧心得体会总结&#xff08;3篇&#xff09; **篇&#xff1a;提升表达力&#xff0c;传递独特魅力 在导游工作中&#xff0c;口才技巧的重要性不言而喻。通过不断的实践和反思&#xff0c;我深刻体会到提升表达力对于导游工作的重要性。一个清晰、生动、有趣的…

【c++】继承学习(一):继承机制与基类派生类转换

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;c笔记仓 朋友们大家好&#xff0c;本篇文章我们来学习继承部分 目录 1.继承的概念和定义继承的定义继承基类成员的访问方式变化 2.基类和派生类对象赋值转换3.继承中的作用域 1.继承的概念和定义 …

OSPF实验系列---3.综合实验

OSPF的综合实验 实验拓扑及要求如下 实验分析 1.R4为ISP&#xff0c;进行IP配置&#xff0c;区域0为公网区域&#xff0c;配置IP地址 2.做MGRE&#xff0c;R3为中心站点&#xff0c;形成Hub-Spoke 3.子网划分 4.私网互通&#xff0c;NAT转换 5.做特殊区域&#xff0c;修改hel…

【C++】STL简介

&#x1f525;个人主页&#xff1a; Forcible Bug Maker &#x1f525;专栏&#xff1a; C 目录 前言什么是STL&#xff1f;STL的历史STL的版本STL六大组件STL的优缺点STL的优点&#xff1a;STL的缺点&#xff1a; 如何学习STL结语 前言 本篇博客主要内容&#xff1a;STL简介。…

01.本地工作目录、暂存区、本地仓库三者的工作关系

1.持续集成 1.持续集成CI 让产品可以快速迭代&#xff0c;同时还能保持高质量。 简化工作 2.持续交付 交付 3.持续部署 部署 4.持续集成实现的思路 gitjenkins 5.版本控制系统 1.版本控制系统概述2.Git基本概述3.Git基本命令 2.本地工作目录、暂存区、本地仓库三者的工作关系…

AD如何从外部导入外框或修改外框大小

一、从外部导入外框 1、从cad中导出dxf文件&#xff0c;从AD中导入导出的文件 2、可参考如下参数设置 3、导入确认后&#xff0c;选择外边框线&#xff08;选择一条边的线然后按Tab键可快速选择&#xff09; 4、到设计-板子形状中选择“按照选择对象定义” 5、板子外形已经出来…

数字电路-5路呼叫显示电路和8路抢答器电路

本内容涉及两个电路&#xff0c;分别为5路呼叫显示电路和8路抢答器电路&#xff0c;包含Multisim仿真原文件&#xff0c;为掌握FPGA做个铺垫。紫色文字是超链接&#xff0c;点击自动跳转至相关博文。持续更新&#xff0c;原创不易&#xff01; 目录&#xff1a; 一、5路呼叫显…