1:在注册登录的练习里面,
追加一个QListWidget 项目列表
要求:点击注册之后,将账号显示到 listWidget上面去
以及,在listWidget中双击某个账号的时候,将该账号删除
Widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QByteArray>
#include <QWidget>
#include <QFile>
#include <QString>
#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 seve_data(const QString& filename,const QString& data);
QString load_data(const QString& filename);
void seve_pwd(const QString& filename,const QString& data);
QString load_pwd(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_H
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("D:/1.txt");
ui->lineEdit->setText(name);
QString pwd=load_pwd("D:/pwd.txt");
ui->lineEdit_2->setText(pwd);
}
Widget::~Widget()
{
QString str=ui->lineEdit->text();
seve_data("D:/1.txt",str);
if(ui->checkBox->QCheckBox::checkState()==Qt::Checked)
{
QString pwd=ui->lineEdit_2->text();
seve_pwd("D:/pwd.txt",pwd);
}
delete ui;
}
void Widget::seve_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::seve_pwd(const QString &filename, const QString &data)
{
file.setFileName(filename);
file.open(QFile::WriteOnly);
file.write(data.toLocal8Bit());
file.close();
}
QString Widget::load_pwd(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 pwd=ui->lineEdit_2->text();
if(name.isEmpty() || pwd.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 pwd=ui->lineEdit_2->text();
if(name.isEmpty() || pwd.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 name=ui->lineEdit->text();
QList<QListWidgetItem *> item=ui->listWidget->findItems(name,Qt::MatchExactly);
if(item.isEmpty())
{
ui->listWidget->addItem(name);
}
}
void Widget::on_listWidget_itemDoubleClicked(QListWidgetItem *item)
{
int row = ui->listWidget->row(item);
delete ui->listWidget->takeItem(row);
}
main.cpp
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
2.完成一个计算器,ui界面如下 完成 +-*/计算功能并且在对应位置显示对应的数据
widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QString>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
private slots:
void on_pushButton_13_clicked();
void on_pushButton_14_clicked();
void on_pushButton_15_clicked();
void on_pushButton_9_clicked();
void on_pushButton_10_clicked();
void on_pushButton_11_clicked();
void on_pushButton_5_clicked();
void on_pushButton_6_clicked();
void on_pushButton_7_clicked();
void on_pushButton_2_clicked();
void on_pushButton_clicked();
void on_pushButton_4_clicked();
void on_pushButton_8_clicked();
void on_pushButton_12_clicked();
void on_pushButton_16_clicked();
void on_pushButton_3_clicked();
private:
Ui::Widget *ui;
QString first;
QString symbol;
QString second;
QString equal;
int falg;
};
#endif // WIDGET_H
widget.cpp
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
,falg(0)
{
ui->setupUi(this);
}
Widget::~Widget()
{
delete ui;
}
// 1
void Widget::on_pushButton_13_clicked()
{
if(falg==0)
{
first+='1';
ui->lineEdit->setText(first);
}else if(falg==1)
{
second+='1';
ui->lineEdit_2->setText(second);
}
}
// 2
void Widget::on_pushButton_14_clicked()
{
if(falg==0)
{
first+='2';
ui->lineEdit->setText(first);
}else if(falg==1)
{
second+='2';
ui->lineEdit_2->setText(second);
}
}
// 3
void Widget::on_pushButton_15_clicked()
{
if(falg==0)
{
first+='3';
ui->lineEdit->setText(first);
}else if(falg==1)
{
second+='3';
ui->lineEdit_2->setText(second);
}
}
// 4
void Widget::on_pushButton_9_clicked()
{
if(falg==0)
{
first+='4';
ui->lineEdit->setText(first);
}else if(falg==1)
{
second+='4';
ui->lineEdit_2->setText(second);
}
}
// 5
void Widget::on_pushButton_10_clicked()
{
if(falg==0)
{
first+='5';
ui->lineEdit->setText(first);
}else if(falg==1)
{
second+='5';
ui->lineEdit_2->setText(second);
}
}
// 6
void Widget::on_pushButton_11_clicked()
{
if(falg==0)
{
first+='6';
ui->lineEdit->setText(first);
}else if(falg==1)
{
second+='6';
ui->lineEdit_2->setText(second);
}
}
// 7
void Widget::on_pushButton_5_clicked()
{
if(falg==0)
{
first+='7';
ui->lineEdit->setText(first);
}else if(falg==1)
{
second+='7';
ui->lineEdit_2->setText(second);
}
}
// 8
void Widget::on_pushButton_6_clicked()
{
if(falg==0)
{
first+='8';
ui->lineEdit->setText(first);
}else if(falg==1)
{
second+='8';
ui->lineEdit_2->setText(second);
}
}
// 9
void Widget::on_pushButton_7_clicked()
{
if(falg==0)
{
first+='9';
ui->lineEdit->setText(first);
}else if(falg==1)
{
second+='9';
ui->lineEdit_2->setText(second);
}
}
// 0
void Widget::on_pushButton_2_clicked()
{
if(falg==0)
{
first+='0';
ui->lineEdit->setText(first);
}else if(falg==1)
{
second+='0';
ui->lineEdit_2->setText(second);
}
}
// C
void Widget::on_pushButton_clicked()
{
first.clear();
ui->lineEdit->setText(first);
second.clear();
ui->lineEdit_2->setText(second);
symbol.clear();
ui->label->setText(symbol);
equal.clear();
ui->lineEdit_3->setText(equal);
falg=0;
}
// +
void Widget::on_pushButton_4_clicked()
{
falg=1;
symbol='+';
ui->label->setText(symbol);
}
// -
void Widget::on_pushButton_8_clicked()
{
falg=1;
symbol='-';
ui->label->setText(symbol);
}
// *
void Widget::on_pushButton_12_clicked()
{
falg=1;
symbol='*';
ui->label->setText(symbol);
}
// ‘/’
void Widget::on_pushButton_16_clicked()
{
falg=1;
symbol='/';
ui->label->setText(symbol);
}
// =
void Widget::on_pushButton_3_clicked()
{
falg=2;
double f=atoi(first.toLocal8Bit().data());
double s=atoi(second.toLocal8Bit().data());
if(symbol=='+')
{
double result=f+s;
QString r;
r.setNum(result);
ui->lineEdit_3->setText(r);
}else if(symbol=='-')
{
double result=f-s;
QString r;
r.setNum(result);
ui->lineEdit_3->setText(r);
}
else if(symbol=='*')
{
double result=f*s;
QString r;
r.setNum(result);
ui->lineEdit_3->setText(r);
}else
{
double result=f/s;
QString r;
r.setNum(result);
ui->lineEdit_3->setText(r);
}
}
main.cpp
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}