当前位置: 首页 > wzjs >正文

塘厦企业网站推广公司泰安seo排名

塘厦企业网站推广公司,泰安seo排名,备案网站ip地址,国家批准的正规学历提升机构题目1:Qt 实现用户登录界面及记住密码功能 要求: 1、用户登录界面包括用户名和密码输入框,密码框支持显示和隐藏密码。 2、支持记住密码功能,通过复选框保存用户是否选择记住密码。 3、在退出时保存用户的登录信息(如用…

题目1:Qt 实现用户登录界面及记住密码功能

要求:

1、用户登录界面包括用户名和密码输入框,密码框支持显示和隐藏密码。
2、支持记住密码功能,通过复选框保存用户是否选择记住密码。
3、在退出时保存用户的登录信息(如用户名和密码),并支持加载这些信息。
4、支持管理用户的账号列表,通过双击列表项删除用户,检查用户名是否重复并添加新账号。

 

widget.cpp 

#include "widget.h"
#include "ui_widget.h"// 构造函数
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{// 设置 UI 界面ui->setupUi(this);// 加载用户名,并填充到文本框QString name = load_data("C:/Users/80657/Documents/QT_PROJECT/name.txt");ui->lineEdit->setText(name);// 加载密码,并填充到密码框QString pwd = load_data("C:/Users/80657/Documents/QT_PROJECT/pwd.txt");ui->lineEdit_2->setText(pwd);// 判断是否选中了“记住密码”QString rememberPwd = load_data("C:/Users/80657/Documents/QT_PROJECT/rememberPwd.txt");if (rememberPwd == "true") { // 如果记住密码ui->checkBox->setChecked(true); // 复选框设为选中} else { // 如果不记住密码ui->checkBox->setChecked(false); // 复选框设为未选中ui->lineEdit_2->clear(); // 清空密码输入框}}// 析构函数
Widget::~Widget()
{// 获取用户名,并保存到文件QString name = ui->lineEdit->text();save_data("C:/Users/80657/Documents/QT_PROJECT/name.txt", name);// 获取密码,并保存到文件(暂未启用)QString pwd = ui->lineEdit_2->text();save_data("C:/Users/80657/Documents/QT_PROJECT/pwd.txt", pwd);/*这里的代码被注释掉了,实际逻辑如下:如果勾选“记住密码”,则保存密码,否则清空密码文件if (ui->checkBox->isChecked()) {QString pwd = ui->lineEdit_2->text();save_data("C:/Users/80657/Documents/QT_PROJECT/pwd.txt", pwd);save_data("C:/Users/80657/Documents/QT_PROJECT/rememberPwd.txt", "true");} else {save_data("C:/Users/80657/Documents/QT_PROJECT/pwd.txt", ""); // 清空密码save_data("C:/Users/80657/Documents/QT_PROJECT/rememberPwd.txt", "false");}*/// 释放 UI 资源delete ui;
}// 保存数据到指定文件
void Widget::save_data(const QString& filename, const QString& data)
{file.setFileName(filename); // 设置文件路径file.open(QFile::WriteOnly); // 以写入模式打开文件file.write(data.toLocal8Bit()); // 写入数据file.close(); // 关闭文件
}// 从指定文件加载数据
QString Widget::load_data(const QString &filename)
{file.setFileName(filename); // 设置文件路径file.open(QFile::ReadOnly); // 以只读模式打开文件QByteArray arr = file.readAll(); // 读取所有数据QString str = QString::fromLocal8Bit(arr); // 转换为 QStringfile.close(); // 关闭文件return str; // 返回数据
}// 监听用户名输入框内容变化
void Widget::on_lineEdit_textChanged(const QString &arg1)
{QString name = ui->lineEdit->text(); // 获取用户名输入框内容QString pswd = ui->lineEdit_2->text(); // 获取密码输入框内容if (name.isEmpty() || pswd.isEmpty()) { // 如果用户名或密码为空ui->pushButton->setEnabled(0); // 禁用账号按钮ui->pushButton_2->setEnabled(0); // 禁用密码按钮} else { // 否则ui->pushButton->setEnabled(1); // 启用账号按钮ui->pushButton_2->setEnabled(1); // 启用密码按钮}
}// 监听密码输入框内容变化
void Widget::on_lineEdit_2_textChanged(const QString &arg1)
{QString name = ui->lineEdit->text(); // 获取用户名输入框内容QString pswd = ui->lineEdit_2->text(); // 获取密码输入框内容if (name.isEmpty() || pswd.isEmpty()) { // 如果用户名或密码为空ui->pushButton->setEnabled(0); // 禁用账号按钮ui->pushButton_2->setEnabled(0); // 禁用密码按钮} else { // 否则ui->pushButton->setEnabled(1); // 启用账号按钮ui->pushButton_2->setEnabled(1); // 启用密码按钮}
}// 按下“显示密码”按钮时,密码框显示明文
void Widget::on_pushButton_3_pressed()
{ui->lineEdit_2->setEchoMode(QLineEdit::Normal); // 设置密码框为明文显示
}// 释放“显示密码”按钮时,密码框恢复为密文
void Widget::on_pushButton_3_released()
{ui->lineEdit_2->setEchoMode(QLineEdit::Password); // 设置密码框为密文显示
}// 监听“记住密码”复选框状态变化
void Widget::on_checkBox_stateChanged(int state)
{if (state == Qt::Checked) { // 如果复选框被选中save_data("C:/Users/80657/Documents/QT_PROJECT/rememberPwd.txt", "true"); // 记录记住密码状态} else { // 如果复选框未选中save_data("C:/Users/80657/Documents/QT_PROJECT/rememberPwd.txt", "false"); // 记录不记住密码状态save_data("C:/Users/80657/Documents/QT_PROJECT/pwd.txt", ""); // 清空密码}
}void Widget::on_listWidget_itemDoubleClicked(QListWidgetItem *item)
{// 获取选中的账号(用户名)QString selectedAccount = item->text();// 在列表中删除选中的账号delete item;
}void Widget::on_pushButton_clicked()
{// 获取用户输入的用户名QString newUsername = ui->lineEdit->text();// 判断用户名是否为空if (newUsername.isEmpty()) {// 提示用户输入有效的用户名(可选)// QMessageBox::warning(this, "输入错误", "用户名不能为空!");return;}// 检查该用户名是否已经存在于列表中bool exists = false;for (int i = 0; i < ui->listWidget->count(); ++i) {if (ui->listWidget->item(i)->text() == newUsername) {exists = true; // 如果找到重复的账号,则标记为存在break;}}// 如果该账号不存在,则添加到列表中if (!exists) {ui->listWidget->addItem(newUsername); // 添加到列表} //else {// 如果账号已经存在,提示用户(可选)// QMessageBox::information(this, "重复账号", "该账号已存在,请选择其他用户名!");//}
}

 

widget.h头文件 

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QFile>
#include <QListWidget>
#include <QApplication>
#include <QDebug>
#include <QLabel>
#include <QLineEdit>
#include <QTextEdit>
#include <QPushButton>
#include <QWidget>  // 基础窗口类
#include <QVBoxLayout>
#include <QDesktopWidget>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();void save_data(const QString& filename,const QString& data);QString load_data(const QString& filename);private slots:void on_lineEdit_textChanged(const QString &arg1);void on_lineEdit_2_textChanged(const QString &arg1);void on_pushButton_3_pressed();void on_pushButton_3_released();void on_checkBox_stateChanged(int arg1);void on_listWidget_itemDoubleClicked(QListWidgetItem *item);void on_pushButton_clicked();private:Ui::Widget *ui;QFile file;
};
#endif // WIDGET_H
//main.cpp#include "widget.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();return a.exec();
}

login.pro 

QT       += core guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsCONFIG += c++11# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0SOURCES += \main.cpp \widget.cppHEADERS += \widget.hFORMS += \widget.ui# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

题目2:  简易计算器设计 

 

 

http://www.dtcms.com/wzjs/132945.html

相关文章:

  • 做网站做百度竞价赚钱阿里指数官网最新版本
  • 不用域名也可以做网站关键词seo
  • 国家建设部举报网站好看的网站模板
  • 那个网站做服装批发谷歌 google
  • 网站建设方案对比分析seo怎样才能优化网站
  • 路由器做服务器做网站链网
  • 易用的做网站软件最佳的资源搜索引擎
  • 鼎湖网站建设电脑优化软件排行榜
  • 怎么做水果机网站线上推广具体应该怎么做
  • 毕业设计代做网站推荐优化关键词排名工具
  • 深圳建设集团有限公司好吗seo排名点击软件推荐
  • jsp网站开发怎么调试网络营销比较好的企业
  • 网站建设速成班培训河北企业网站建设
  • 那个网站做玉石最专业浏阳廖主任打人案
  • 信阳网站建设公司web网页制作成品
  • asp.net mvc做网站深圳推广
  • 外海赌博如何做网站的推广谷歌排名优化入门教程
  • 成安企业做网站推广新站网站推广公司
  • 广州网站建设公新公司如何做推广
  • 怎么建设卡盟网站常州网站seo
  • 网站建设后台管理外贸网站推广怎么做
  • 潜山网站建设seo网络推广课程
  • 邢台网站建设网络公司百度一下官网手机版
  • 做网站架构的软件网页搜索引擎
  • bootstrap网站开发实例教程seo推广论坛
  • 做网站定金交多少合适长沙网站seo技术厂家
  • 顶级网站建设西安分类信息seo公司
  • 学做披萨的网站搜索大全搜索引擎
  • 网站客服弹窗代码抖音seo排名系统哪个好用
  • 汽车营销服务网站建设深圳网络推广最新招聘