作业
代码
Widget.h
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
void save_data(const QString& filename,const QString& data);
private slots:
void on_lineEdit_textChanged(); //账户栏
void on_lineEdit_2_textChanged(); //密码栏
void on_radioButton_clicked(bool checked); //显示密码
//新增代码
void on_logButton_clicked(); //登录按钮
void on_listWidget_itemDoubleClicked(QListWidgetItem *item); //listWidget双击
private:
Ui::Widget *ui;
QFile file;
};
#endif // WIDGET_H
Widget.cpp
//新增代码
//登录按键 点击事件
void Widget::on_logButton_clicked()
{
QString name = ui->lineEdit->text();
QList<QListWidgetItem *> res = ui->listWidget->findItems(name,Qt::MatchExactly);
if(res.isEmpty())
{
ui->listWidget->addItem(name);
}
}
//listWidget 双击事件
void Widget::on_listWidget_itemDoubleClicked(QListWidgetItem *item)
{
int row = ui->listWidget->row(item);
ui->listWidget->takeItem(row);
}
效果
双击之前
双击之后
作业
代码
Widget.h
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
private slots:
// 数字按键部分
void on_pushButton_0_clicked();
void on_pushButton_1_clicked();
void on_pushButton_2_clicked();
void on_pushButton_3_clicked();
void on_pushButton_4_clicked();
void on_pushButton_5_clicked();
void on_pushButton_6_clicked();
void on_pushButton_7_clicked();
void on_pushButton_8_clicked();
void on_pushButton_9_clicked();
// 加减乘除
void on_pushButton_add_clicked();
void on_pushButton_sub_clicked();
void on_pushButton_mul_clicked();
void on_pushButton_div_clicked();
// 其他按键
void on_pushButton_clear_clicked();
void on_pushButton_res_clicked();
private:
Ui::Widget *ui;
QString str; // 第一个数
QString ch; // 加减乘除
QString str2; // 第二个数
QString res; // 结果
int line = 1; // 标志位
};
#endif
Widget.cpp
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
}
Widget::~Widget()
{
delete ui;
}
/*************** 数字键盘区 ***************/
void Widget::on_pushButton_0_clicked()
{
if(line == 1)
{
str+='0';
ui->mainLineEdit->setText(str);
}
else if(line == 0)
{
str2+='0';
ui->mainLineEdit_2->setText(str2);
}
}
void Widget::on_pushButton_1_clicked()
{
if(line == 1)
{
str+='1';
ui->mainLineEdit->setText(str);
}
else if(line == 0)
{
str2+='1';
ui->mainLineEdit_2->setText(str2);
}
}
void Widget::on_pushButton_2_clicked()
{
if(line == 1)
{
str+='2';
ui->mainLineEdit->setText(str);
}
else if(line == 0)
{
str2+='2';
ui->mainLineEdit_2->setText(str2);
}
}
void Widget::on_pushButton_3_clicked()
{
if(line == 1)
{
str+='3';
ui->mainLineEdit->setText(str);
}
else if(line == 0)
{
str2+='3';
ui->mainLineEdit_2->setText(str2);
}
}
void Widget::on_pushButton_4_clicked()
{
if(line == 1)
{
str+='4';
ui->mainLineEdit->setText(str);
}
else if(line == 0)
{
str2+='4';
ui->mainLineEdit_2->setText(str2);
}
}
void Widget::on_pushButton_5_clicked()
{
if(line == 1)
{
str+='5';
ui->mainLineEdit->setText(str);
}
else if(line == 0)
{
str2+='5';
ui->mainLineEdit_2->setText(str2);
}
}
void Widget::on_pushButton_6_clicked()
{
if(line == 1)
{
str+='6';
ui->mainLineEdit->setText(str);
}
else if(line == 0)
{
str2+='6';
ui->mainLineEdit_2->setText(str2);
}
}
void Widget::on_pushButton_7_clicked()
{
if(line == 1)
{
str+='7';
ui->mainLineEdit->setText(str);
}
else if(line == 0)
{
str2+='7';
ui->mainLineEdit_2->setText(str2);
}
}
void Widget::on_pushButton_8_clicked()
{
if(line == 1)
{
str+='8';
ui->mainLineEdit->setText(str);
}
else if(line == 0)
{
str2+='8';
ui->mainLineEdit_2->setText(str2);
}
}
void Widget::on_pushButton_9_clicked()
{
if(line == 1)
{
str+='9';
ui->mainLineEdit->setText(str);
}
else if(line == 0)
{
str2+='9';
ui->mainLineEdit_2->setText(str2);
}
}
/*************** 加减乘除区 ***************/
void Widget::on_pushButton_add_clicked()
{
ch = '+';
line = 0;
ui->label->setText("+");
}
void Widget::on_pushButton_sub_clicked()
{
ch = '-';
line = 0;
ui->label->setText("-");
}
void Widget::on_pushButton_mul_clicked()
{
ch = '*';
line = 0;
ui->label->setText("*");
}
void Widget::on_pushButton_div_clicked()
{
ch = '/';
line = 0;
ui->label->setText("/");
}
/*************** 数字键盘区 ***************/
void Widget::on_pushButton_clear_clicked()
{
if(line == 1)
{
str.clear();
ui->mainLineEdit->setText(str);
}
else if(line == 0)
{
str2.clear();
ui->mainLineEdit_2->setText(str2);
}
else if(line == 3)
{
str.clear();
str2.clear();
ui->mainLineEdit->setText("");
ui->mainLineEdit_2->setText("");
ui->resEdit->setText("");
line = 1;
}
}
/*************** 数字键盘区 ***************/
void Widget::on_pushButton_res_clicked()
{
//QString 转 int
int index1 = str.toInt();
int index2 = str2.toInt();
//加减乘除
if(ch == '+')
{
int int_res = index1 + index2;
QString string_res = QString::number(int_res);
ui->resEdit->setText(string_res);
}
else if(ch == '-')
{
int int_res = index1 - index2;
QString string_res = QString::number(int_res);
ui->resEdit->setText(string_res);
}
else if(ch == '*')
{
int int_res = index1 * index2;
QString string_res = QString::number(int_res);
ui->resEdit->setText(string_res);
}
else if(ch == '/')
{
int int_res = index1 / index2;
QString string_res = QString::number(int_res);
ui->resEdit->setText(string_res);
}
//说明计算完毕,再次点击C会清除所有
line = 3;
}
效果
加减乘除
C键效果