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

运行结果:

相关推荐
知乎的哥廷根数学学派15 分钟前
基于生成对抗U-Net混合架构的隧道衬砌缺陷地质雷达数据智能反演与成像方法(以模拟信号为例,Pytorch)
开发语言·人工智能·pytorch·python·深度学习·机器学习
yeziyfx1 小时前
kotlin中 ?:的用法
android·开发语言·kotlin
charlie1145141911 小时前
嵌入式的现代C++教程——constexpr与设计技巧
开发语言·c++·笔记·单片机·学习·算法·嵌入式
古城小栈1 小时前
Rust 网络请求库:reqwest
开发语言·网络·rust
hqwest2 小时前
码上通QT实战12--监控页面04-绘制6个灯珠及开关
开发语言·qt·qpainter·qt事件·stackedwidget
i橡皮擦2 小时前
TheIsle恐龙岛读取游戏基址做插件(C#语言)
开发语言·游戏·c#·恐龙岛·theisle
bing.shao2 小时前
golang 做AI任务执行
开发语言·人工智能·golang
源代码•宸3 小时前
Golang语法进阶(协程池、反射)
开发语言·经验分享·后端·算法·golang·反射·协程池
basketball6164 小时前
python 的对象序列化
开发语言·python
fie88894 小时前
钢结构件制造车间生产调度实例:MATLAB实现(基于遗传算法)
开发语言·matlab·制造