EX_25/3/3
- 开源代码
- 2025-09-15 06:09:02

在注册登录的练习里面,追加一个QListWidget 项目列表 要求:点击注册之后,将账号显示到 listWidget上面去 以及,在listWidget中双击某个账号的时候,将该账号删除
widget.h
#ifndef WIDGET_H #define WIDGET_H #include <QFile> #include <QWidget> #include <QListWidget> QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACE class Widget : public QWidget { Q_OBJECT public: 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_pushButton_clicked(); void on_listWidget_itemDoubleClicked(QListWidgetItem *item); private: Ui::Widget *ui; QFile file; }; #endif // WIDGET_Hmian.cpp
#include "widget.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); Widget w; w.show(); return a.exec(); }widget.cpp
#include "widget.h" #include "ui_widget.h" Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) { ui->setupUi(this); QString name=load_data("E:/name.txt"); ui->lineEdit->setText(name); QString pswd=load_data("E:/pswd.txt"); ui->lineEdit_2->setText(pswd); } Widget::~Widget() { QString name=ui->lineEdit->text(); save_data("E:/name.txt",name); QString pswd=ui->lineEdit_2->text(); save_data("E:/pswd.txt",pswd); 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); file.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_pushButton_clicked() { QString text = ui->lineEdit->text(); if (!text.isEmpty()) { QListWidgetItem* item = new QListWidgetItem(text); ui->listWidget->addItem(item); } } void Widget::on_listWidget_itemDoubleClicked(QListWidgetItem *item) { if (item) { delete ui->listWidget->takeItem(ui->listWidget->row(item)); } }(关于勾选是否记住密码的操作并未执行)
 
               
               
               
               
               
               
               
               
   
   
   
   
   
   
   
   
   
   
  