QT Creator es uno de los mejores IDE para c++ en especial cuando se trata de crear formularios, maneja todos los controles como cuadro de texto, botones, Table, combos box, listas, conexion a base de datos, generacion de archivos pdf, archivos de texto, tiene otros temas como qt network, es excelente.
File mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <cmath>
#include <QDateTime>
#include <QTimer>
#include <QMessageBox>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
setWindowTitle("Simulacion de Recibo");
QStringList titu;
ui->tblPro->setColumnCount(4);
titu<<"Producto"<<"Precio_U"<<"Cantidad"<<"Importe";
ui->tblPro->setHorizontalHeaderLabels(titu);
ui->tblPro->setColumnWidth(0,150);
cargar_combo();
cargar_cli();
setHora();
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::setHora()
{
QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(cargar_fecha()));
timer->start(1000);
}
void MainWindow::on_btnAdd_clicked()
{
//ui->txtPrecio->setText(ui->txtNombre->text());
ui->tblPro->insertRow(ui->tblPro->rowCount());
ui->tblPro->setItem(ui->tblPro->rowCount()-1,0,new QTableWidgetItem(ui->cmbPro->currentText()));
ui->tblPro->setItem(ui->tblPro->rowCount()-1,1,new QTableWidgetItem(ui->txtPrecio->text()));
ui->tblPro->setItem(ui->tblPro->rowCount()-1,2,new QTableWidgetItem(ui->txtCan->text()));
calTot();
}
void MainWindow::cargar_combo()
{
ui->cmbPro->addItem("PlayStation 4");
ui->cmbPro->addItem("Laptop Dell i7");
ui->cmbPro->addItem("Hard disk 1Tb");
ui->cmbPro->addItem("TV 60 LED Sony");
ui->cmbPro->addItem("Laptop Apple i7");
ui->cmbPro->addItem("Samsung Galaxy S6");
}
void MainWindow::calTot()
{
double imp;
double precio;
double can;
double S=0;
double tax=0;
double total=0;
int i;
for(i=0;i<ui->tblPro->rowCount();i++){
precio=ui->tblPro->item(i,1)->text().toDouble();
//precio=ui->tblPro->takeItem(i,1)->text().toDouble();
can=ui->tblPro->item(i,2)->text().toDouble();
imp=precio*can;
ui->tblPro->setItem(i,3,new QTableWidgetItem(QString::number(imp)));
S=S+imp;
S=redo(S);
tax=0.09*S;
tax=redo(tax);
total=1.09*S;
total=redo(total);
ui->lblSub->setText(QString::number(S));
ui->lblTax->setText(QString::number(tax));
ui->lblTotal->setText(QString::number(total));
}
}
double MainWindow::redo(double n)
{
n=n*100;
n=round(n);
n=n/100;
return n;
}
void MainWindow::cargar_cli()
{
ui->cmbCli->addItem("Miguel Nunez Varillas");
ui->cmbCli->addItem("Rosa Castro");
ui->cmbCli->addItem("Soila Monge");
ui->cmbCli->addItem("Luis Salvatierra");
ui->cmbCli->addItem("Alberto Lozano");
ui->cmbCli->addItem("Fernando Garcia");
ui->cmbCli->addItem("Julio Ortiz Jason");
}
void MainWindow::cargar_fecha()
{
QDateTime tiempo2=QDateTime();
ui->lblFecha->setText(tiempo2.currentDateTime().toString());
QString h=QString::number(tiempo2.currentDateTime().time().hour());
QString m=QString::number(tiempo2.currentDateTime().time().minute());
QString s=QString::number(tiempo2.currentDateTime().time().second());
ui->lblRelog->setText(h+":"+m+":"+s);
}
void MainWindow::on_cmbPro_currentIndexChanged(const QString &arg1)
{ QString cad;
switch (ui->cmbPro->currentIndex()) {
case 1:cad="500";break;
case 2:cad="89";break;
case 3:cad="700";break;
case 4:cad="800";break;
case 5:cad="200";break;
default:cad="220";
break;
}
ui->txtPrecio->setText(cad);
ui->txtCan->setText("1");
}
void MainWindow::on_btnDel_clicked()
{ QMessageBox mensa;
if (ui->tblPro->currentRow()>-1){
ui->tblPro->removeRow(ui->tblPro->currentRow());
}else{
mensa.setText("Seleccione una fila");
mensa.exec();
}
}
Suscribirse a:
Entradas (Atom)
Conectar a MySql con Java Netbeans mediante un Formulario
Tener agregado en libraries el conector mysql. clase coneBD.java package pktForm12; import java.sql.*; import javax.swing.JOptionPane; publ...
-
package pktNewton; import javax.swing.table.DefaultTableModel; public class frmNewton extends javax.swing.JFrame { DefaultTableModel m...
-
Basicamente se realiza botones de navegacion como primero, siguiente, anterior, ultimo de una tabla Mysql con Java Netbeans. Ademas se na...
-
Se soluciona un Sistema de Ecuaciones lineales por determinantes utilizando el lenguaje de programacion Java, Metodos Numericos, Analisis Nu...