QT day2

1.在注册登录的练习里面,追加一个QListWidget 项目列表

要求:点击注册之后,将账号显示到 listWidget上面去

以及,在listWidget中双击某个账号的时候,将该账号删除

cpp 复制代码
void Widget::on_pushButton_clicked()
{
    QString name = ui->lineEdit->text();
    if (ui->listWidget->findItems(name, Qt::MatchExactly).isEmpty())
    {
        ui->listWidget->addItem(name);
    }
}

void Widget::on_listWidget_itemDoubleClicked(QListWidgetItem *item)
{
    if (item)
    {
        ui->listWidget->takeItem(ui->listWidget->row(item));
        delete item;
    }
}

运行结果:

双击删除

2.完成一个计算器,ui界面如下

完成 +-*/计算功能并且在对应位置显示对应的数据

widget.cpp

cpp 复制代码
#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
}

Widget::~Widget()
{
    delete ui;
}


void Widget::on_pushButton_0_clicked()
{
//    if (this->ui->lineEdit->text().isEmpty()){return;}
//    if (this->ui->lineEdit_2->text().isEmpty()){return;}

    if (this->ui->lineEdit_1->text().isEmpty())
    {
        num1 += "0";
        this->ui->lineEdit->setText(num1);
    }
    else
    {
        num2 += "0";
        this->ui->lineEdit_2->setText(num2);
    }
}

void Widget::on_pushButton_1_clicked()
{
    if (this->ui->lineEdit_1->text().isEmpty())
    {
        num1 += "1";
        this->ui->lineEdit->setText(num1);
    }
    else
    {
        num2 += "1";
        this->ui->lineEdit_2->setText(num2);
    }
}

void Widget::on_pushButton_2_clicked()
{
    if (this->ui->lineEdit_1->text().isEmpty())
    {
        num1 += "2";
        this->ui->lineEdit->setText(num1);
    }
    else
    {
        num2 += "2";
        this->ui->lineEdit_2->setText(num2);
    }
}

void Widget::on_pushButton_3_clicked()
{


    if (this->ui->lineEdit_1->text().isEmpty())
    {num1 += "3";
        this->ui->lineEdit->setText(num1);
    }
    else
    {num2 += "3";
        this->ui->lineEdit_2->setText(num2);
    }
}

void Widget::on_pushButton_4_clicked()
{


    if (this->ui->lineEdit_1->text().isEmpty())
    {num1 += "4";
        this->ui->lineEdit->setText(num1);
    }
    else
    {num2 += "4";
        this->ui->lineEdit_2->setText(num2);
    }
}

void Widget::on_pushButton_5_clicked()
{


    if (this->ui->lineEdit_1->text().isEmpty())
    {num1 += "5";
        this->ui->lineEdit->setText(num1);
    }
    else
    {num2 += "5";
        this->ui->lineEdit_2->setText(num2);
    }
}

void Widget::on_pushButton_6_clicked()
{


    if (this->ui->lineEdit_1->text().isEmpty())
    {num1 += "6";
        this->ui->lineEdit->setText(num1);
    }
    else
    {num2 += "6";
        this->ui->lineEdit_2->setText(num2);
    }
}

void Widget::on_pushButton_7_clicked()
{


    if (this->ui->lineEdit_1->text().isEmpty())
    {num1 += "7";
        this->ui->lineEdit->setText(num1);
    }
    else
    {num2 += "7";
        this->ui->lineEdit_2->setText(num2);
    }
}

void Widget::on_pushButton_8_clicked()
{


    if (this->ui->lineEdit_1->text().isEmpty())
    {num1 += "8";
        this->ui->lineEdit->setText(num1);
    }
    else
    {num2 += "8";
        this->ui->lineEdit_2->setText(num2);
    }
}

void Widget::on_pushButton_9_clicked()
{


    if (this->ui->lineEdit_1->text().isEmpty())
    {num1 += "9";
        this->ui->lineEdit->setText(num1);
    }
    else
    {num2 += "9";
        this->ui->lineEdit_2->setText(num2);
    }
}

void Widget::on_pushButton_10_clicked()
{
    ope = "+";
    this->ui->lineEdit_1->setText(ope);
}

void Widget::on_pushButton_11_clicked()
{
    ope = "-";
    this->ui->lineEdit_1->setText(ope);
}

void Widget::on_pushButton_12_clicked()
{
    ope = "×";
    this->ui->lineEdit_1->setText(ope);
}

void Widget::on_pushButton_13_clicked()
{
    ope = "➗";
    this->ui->lineEdit_1->setText(ope);
}



void Widget::on_pushButton_15_clicked()
{
    num1.clear();
    num2.clear();
    ui->lineEdit->setText("");
    ui->lineEdit_1->setText("");
    ui->lineEdit_2->setText("");
    ui->lineEdit_3->setText("");
}

void Widget::on_pushButton_14_clicked()
{
    bool b1, b2;
    double n1 = ui->lineEdit->text().toDouble(&b1);
    double n2 = ui->lineEdit_2->text().toDouble(&b2);
    if (ope == "+")
    {
        res = n1 + n2;
    }
    else if (ope == "-")
    {
        res = n1 - n2;
    }
    else if (ope == "×")
    {
        res = n1 * n2;
    }
    else if (ope == "➗")
    {
        if (n2 != 0)
        {
            res = n1 / n2;
        }
        else
        {
            ui->lineEdit_3->setText("除数不能为零");
            return;
        }
    }

    ui->lineEdit_3->setText(QString::number(res));
}

widget.h

cpp 复制代码
#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QLineEdit>
#include <QPushButton>

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_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_10_clicked();

    void on_pushButton_11_clicked();

    void on_pushButton_12_clicked();

    void on_pushButton_13_clicked();

    void on_pushButton_15_clicked();

    void on_pushButton_14_clicked();

private:
    Ui::Widget *ui;
    QString num1;
    QString num2;
    QString ope;
    double res;

};
#endif // WIDGET_H

运行结果:

相关推荐
人间凡尔赛5 小时前
Next.js 16 生产级实战:Cache Components + View Transitions 完整指南
开发语言·javascript·ecmascript
稚南城才子,乌衣巷风流9 小时前
函数:编程中的核心概念
开发语言·前端·javascript
阿米亚波9 小时前
【C++】流式数据输入处理(不完全整理)
开发语言·c++·笔记
大模型码小白9 小时前
JAVA 集合框架进阶:List 与 Set 的深度解析与实战
java·开发语言·人工智能·windows·语言模型·list·ai编程
皓月斯语10 小时前
【C++基础】三目运算符
开发语言·数据结构·c++
初願致夕霞11 小时前
C++懒汉单例设计详解
服务器·开发语言·c++
脱胎换骨-军哥11 小时前
C++分布式系统设计:从通信引擎到分布式共识
开发语言·c++·分布式
脱胎换骨-军哥12 小时前
C++零成本抽象理论深度拆解:现代C++如何在不牺牲性能的前提下提供高级语法封装
java·开发语言·c++
lbb 小魔仙12 小时前
VS Code Python 高级调试技巧:从入门到精通
开发语言·python
方便面不加香菜12 小时前
C++ 模板进阶
开发语言·c++