QLCD编号显示双倍

问题描述 投票:0回答:1

我正在尝试通过创建一个简单的计算器来学习Qt中的视觉编程。我在使用QLCDNumber时遇到了麻烦,因为我无法显示双数,它不显示昏迷或小数。代码很简单,但是应该可以完成工作,但是如何显示昏迷呢?

这里是代码:

#include "mainwindow.h"
#include "ui_mainwindow.h"

using namespace std;

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

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



// VARIABLES GLOBALES
double valor1 = 0;
double valor2 = 0;
double suma = 0;
double resta = 0;
double multiplicacion = 0;
double division = 0;
double raiz = 0;
double resultado;
int contador_decimales = 0;
bool suma_presionada = 0;
bool resta_presionada = 0;
bool resultado_inicializado = 0;


// BOTÓN 1
void MainWindow::on_boton1_clicked()
{
    if (contador_decimales == 0){
        if (suma_presionada == 0 && resta_presionada == 0){
            valor1 = valor1 * 10 + 1;
            ui -> pantalla -> display(valor1);
        }
        else {
            valor2 = valor2 * 10 + 1;
            ui -> pantalla -> display(valor2);
        }
    } else {
        if (suma_presionada == 0 && resta_presionada == 0){
            valor1 = valor1 + 1/contador_decimales;
            ui -> pantalla -> display(valor1);
            contador_decimales = contador_decimales * 10;
        }
        else {
            valor2 = valor2 + 1/contador_decimales;
            ui -> pantalla -> display(valor2);
            contador_decimales = contador_decimales * 10;
        }
    }

}

// BOTÓN 2
void MainWindow::on_boton2_clicked()
{
    if (suma_presionada == 0 && resta_presionada == 0){
        valor1 = valor1 * 10 + 2;
        ui -> pantalla -> display(valor1);
    }
    else {
        valor2 = valor2 * 10 + 2;
        ui -> pantalla -> display(valor2);
    }
}


// BOTÓN 3
void MainWindow::on_boton3_clicked()
{
    if (suma_presionada == 0 && resta_presionada == 0){
        valor1 = valor1 * 10 + 3;
        ui -> pantalla -> display(valor1);
    }
    else {
        valor2 = valor2 * 10 + 3;
        ui -> pantalla -> display(valor2);
    }
}


// BOTÓN SUMA
void MainWindow::on_boton_suma_clicked()
{
    suma_presionada = 1;
    resta_presionada = 0;
    contador_decimales = 0;
}


// BOTÓN RESTA
void MainWindow::on_boton_resta_clicked()
{
    suma_presionada = 0;
    resta_presionada = 1;
    contador_decimales = 0;
}

// BOTÓN IGUAL
void MainWindow::on_boton_igual_clicked()
{

    // SUMA
    if (suma_presionada == 1){
        if (valor1 != NULL){
            suma = valor1 + valor2;
        } else {
            suma = resultado + valor2;

        }
        ui -> pantalla -> display(suma);
        resultado = ui -> pantalla -> value();
        suma_presionada = 0;
        contador_decimales = 0;
        valor1 = NULL;
        valor2 = 0;
    }


    // RESTA
    if (resta_presionada == 1){
        if (valor1 != NULL){
            suma = valor1 - valor2;
        } else {
            suma = resultado - valor2;

        }
        ui -> pantalla -> display(suma);
        resultado = ui -> pantalla -> value();
        resta_presionada = 0;
        valor1 = NULL;
        valor2 = 0;
    }

}


// BOTÓN DECIMAL
void MainWindow::on_boton_coma_clicked()
{
    contador_decimales = 10;
     ui -> pantalla -> smallDecimalPoint();
    ui -> pantalla -> setSmallDecimalPoint(true);
}
double display qlcdnumber
1个回答
0
投票

我发现了问题。不是LCD不会显示双屏,而是我没有双屏。我将contador_decimales声明为一个整数,因此1 / contador_decimales是一个整数。我尝试将其强制转换为双精度,但是它不起作用,但是如果我将contador_decimales声明为双精度,则可以。

© www.soinside.com 2019 - 2024. All rights reserved.