QT:输入类控件的使用

embedded/2025/1/16 3:00:06/

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.ppmy.cn/embedded/32060.html

相关文章

C# Winform父窗体打开新的子窗体前,关闭其他子窗体

随着Winform项目越来越多&#xff0c;界面上显示的窗体越来越多&#xff0c;窗体管理变得更加繁琐。有时候我们要打开新窗体&#xff0c;然后关闭多余的其他窗体&#xff0c;这个时候如果一个一个去关闭就会变得很麻烦&#xff0c;而且可能还会出现遗漏的情况。这篇文章介绍了三…

Ubuntu 4G模块域名ping不通

Ubuntu 4G模块域名ping不通 1. 问题2. 解决办法 1. 问题 Ubuntu 用4G模块上网&#xff0c;ping ip可以&#xff0c;但是 域名 ping 不通 查了网络和DNS解析配置都没问题 2. 解决办法 关闭调制解调管理器 stop systemctl stop ModemManager stop systemctl disable ModemMana…

vs2022 设置远程调试虚拟机Ubuntu程序 (cmake)

一 . 先将虚拟机设置为桥接模式 双击进入&#xff0c;勾选物理模式 点确定&#xff0c;然后重启虚拟机 二 . 打开ubuntu的ssh模式 使允许远程 altcontrol T 打开终端 sudo apt-get update sudo apt-get install openssh-server sudo systemctl start ssh sudo systemctl…

ctfshow——SQL注入

文章目录 SQL注入基本流程普通SQL注入布尔盲注时间盲注报错注入——extractvalue()报错注入——updataxml()Sqlmap的用法 web 171——正常联合查询web 172——查看源代码、联合查询web 173——查看源代码、联合查询web 174——布尔盲注web 176web 177——过滤空格web 178——过…

网络安全入门 5 天速成教程: WEB 安全渗透攻防技术

前言 随着 Web 技术发展越来越成熟&#xff0c;而非 Web 服务越来越少的暴露在互联网上&#xff0c;现在互联网安全主要指的是 Web 安全。 为了自身不“裸奔”在大数据里&#xff0c;渐渐开始学习 Web 安全&#xff0c;在学习 Web 安全的过程中&#xff0c;发现很大一部分知识…

跟TED演讲学英文:The future of money by Neha Narula

The future of money Link: https://www.ted.com/talks/neha_narula_the_future_of_money Speaker: Neha Narula Date: May 2016 文章目录 The future of moneyIntroductionVocabularyTranscriptSummary后记 Introduction What happens when the way we buy, sell and pay f…

C语言-字符串函数和内存函数

目录 一、函数介绍1.1 strlen1.2 strcpy1.3 strcat1.4 strcmp1.5 strncpy1.6 strncat1.7 strncmp1.8 strstr1.9 strtok1.10 strerror1.11 memcpy1.12 memmove1.13 memcmp 一、函数介绍 1.1 strlen size_t strlen ( const char * str );字符串已经 ‘\0’ 作为结束标志&#x…

笨蛋学C++【C++基础第十弹】

C基础第十弹 CSTL教程vector容器&#xff08;有限扩容&#xff09;vector构造函数vector赋值方式vector的容量和大小vector的插入和删除vector获取元素vector互换容器vector预留空间&#xff08;大量数据&#xff09;vector遍历方法容器自定义数据类型vector迭代容器 strng容器…