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

运行结果:

相关推荐
我是李武涯16 小时前
从`std::mutex`到`std::lock_guard`与`std::unique_lock`的演进之路
开发语言·c++
史不了17 小时前
静态交叉编译rust程序
开发语言·后端·rust
读研的武17 小时前
DashGo零基础入门 纯Python的管理系统搭建
开发语言·python
Andy18 小时前
Python基础语法4
开发语言·python
但要及时清醒18 小时前
ArrayList和LinkedList
java·开发语言
孚亭18 小时前
Swift添加字体到项目中
开发语言·ios·swift
hweiyu0018 小时前
Go、DevOps运维开发实战(视频教程)
开发语言·golang·运维开发
mm-q291522272918 小时前
Python+Requests零基础系统掌握接口自动化测试
开发语言·python
星星火柴93619 小时前
笔记 | C++面向对象高级开发
开发语言·c++·笔记·学习