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

运行结果:

相关推荐
蜗牛一步步往上爬2 小时前
第十六章 C++语言在深度学习中的应用
开发语言·c++·深度学习
张张123y4 小时前
DSH 插件调试避坑:client.js 设置面板、热重载与高频报错排查表
开发语言·javascript·人工智能·开源·ecmascript·后端开发·ai agent
冻柠檬飞冰走茶7 小时前
字母移动游戏题解:贪心求最长可保留连续子串(附 C 实现)
c语言·开发语言·数据结构·算法·动态规划
FRing037 小时前
vue2干货总结7(自定义指令、插槽、单页应用程序、路由的使用(VueRouter))
开发语言·前端·vue.js·vue2
雪落漂泊7 小时前
C++算法 二分查找篇(上)
开发语言·c++·算法
波力海苔夹心脆6758 小时前
C# WPF 资源字典详解:ResourceDictionary、MergedDictionaries 与自定义控件案例
开发语言·c#·wpf·入门教程·resource·资源字典
不会算法的笨小孩8 小时前
异常的使用以及会出现的问题
开发语言·c++·c++11·异常
Hhy_110711 小时前
《C++深度解构06》手撕 string —— 从底层内存管理到深浅拷贝彻底吃透
c语言·开发语言·c++·学习·visual studio
starzy199011 小时前
深入理解Scala函数定义:从方法到函数的类型跨越
开发语言·scala
starzy199011 小时前
深入理解Scala递归函数:从栈溢出到尾调用优化
开发语言·scala