1 #include "mainwindow.h"
2 #include "ui_mainwindow.h"
4 #include <opencv/highgui.h>
15 #include <QSpacerItem>
17 // importante ui->label->setPixmap(QPixmap::fromImage(qimg));
20 MainWindow::MainWindow(QWidget
*parent
) :
22 ui(new Ui::MainWindow
)
27 ui
->buttonBox
->hide();
33 fotonum
= 1; //este sive como indice para saber en que label se musetra la foto..
35 //setWindowState(Qt::WindowFullScreen);
36 //ui->butonFullscreen->hide();
38 ui
->buttonBox
->button(QDialogButtonBox::Cancel
)->setText("Cancelar");
39 ui
->buttonBox
->button(QDialogButtonBox::Ok
)->setText("Listo!!");
41 foto1
= new MiLabel();
42 foto2
= new MiLabel();
43 foto3
= new MiLabel();
44 foto4
= new MiLabel();
46 //foto1->setPixmap(QPixmap(":imas/admira"));
52 foto1
->setParent(ui
->filmstrip
);
53 foto2
->setParent(ui
->filmstrip
);
54 foto3
->setParent(ui
->filmstrip
);
55 foto4
->setParent(ui
->filmstrip
);
57 foto1
->setGeometry(15,14,160,120);
58 foto2
->setGeometry(15,159,160,120);
59 foto3
->setGeometry(15,303,160,120);
60 foto4
->setGeometry(15,447,160,120);
63 for(int i
=0;i
<=10;i
++)
65 misfondos
.append(new MiLabel(ui
->scrollAreaFondos
));
67 pixm
= ":fondos/fondo" + QString::number(i
);
68 misfondos
.last()->setPixmap(pixm
);
69 misfondos
.last()->setGeometry(5,(0 + i
*120),160,120);
70 misfondos
.last()->conmarco(true);
71 misfondos
.last()->setidd(i
);
72 connect(misfondos
.last(),SIGNAL(seleccionado(int)),this,SLOT(seSelecciono(int)));
75 //agrega el objeto camaru de tipo camara
78 //acomoda los widgets en principal
79 ui
->verticalLayout_2
->addWidget(ui
->countdown
);
80 ui
->verticalLayout_2
->addWidget(camaru
);
81 ui
->spacerCagalas
->invalidate();
82 ui
->verticalLayout_2
->addStretch();
83 ui
->verticalLayout_2
->addWidget(ui
->buttonBox
);
84 ui
->verticalLayout_2
->addWidget(ui
->botonfoto
);
86 camaru
->setpix(QPixmap(":imas/admira")); //esto es temporal solo para que muestre alguna imagen en cuanto habra el programa
89 //conecciones debe haber un if y hacer todo esto si abrio bien la camara
90 connect(timeer
, SIGNAL(timeout()), camaru
, SLOT(newQframe()));
93 connect(timi
, SIGNAL(timeout()),this, SLOT(aumentaEnSegundo()));
94 connect(this,SIGNAL(yaaa()),this,SLOT(tomafotoReal()));
96 connect(foto1
, SIGNAL(seleccionado(int)), this, SLOT(seSelecciono(int)));
97 connect(foto2
, SIGNAL(seleccionado(int)), this, SLOT(seSelecciono(int)));
98 connect(foto3
, SIGNAL(seleccionado(int)), this, SLOT(seSelecciono(int)));
99 connect(foto4
, SIGNAL(seleccionado(int)), this, SLOT(seSelecciono(int)));
102 MainWindow::~MainWindow()
107 void MainWindow::on_botonfoto_clicked() //el boton que toma la foto
109 if (camaru
->geterror() == 2)
111 ui
->buttonBox
->hide();
115 ui
->countdown
->setStyleSheet("color: rgb(0, 0, 0);"
116 "border: 2px solid rgb(255, 255, 255);"
117 "border-radius: 18px;"
119 "background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0.113122 rgba(132, 1, 158, 255), stop:1 rgba(187, 24, 187, 128));"
121 "color: rgb(255, 255, 255);"
122 "font: 75 65pt Bitstream Charter;"
125 seg
=4; // setea seg a 6 para comenzar cuenta regresiva
126 timi
->start(1000); // comienza cuenta regresiva
127 ui
->countdown
->setText("!!Listos!!");
128 ui
->countdown
->show();
130 ui
->filmstrip
->blockSignals(true);
131 ui
->filmstrip
->setDisabled(true);
132 ui
->printbut
->blockSignals(true);
133 ui
->printbut
->setDisabled(true);
134 ui
->buttonBox
->hide();
135 ui
->herramientas
->blockSignals(true);
136 ui
->herramientas
->setDisabled(true);
137 ui
->botonfoto
->blockSignals(true);
138 ui
->botonfoto
->setDisabled(true);
142 void MainWindow::on_printbut_clicked() //el boton que debe abrir un widget donde muestre la vista previa de las fotos yyy un boton para imprimirles o descartar.
145 foto1
->conmarco(false); foto2
->conmarco(false); foto3
->conmarco(false); foto4
->conmarco(false);
147 QPrinter
* mipdf
=new QPrinter();
148 mipdf
->setOutputFormat(QPrinter::PdfFormat
);
149 mipdf
->setOutputFileName("/tmp/impresion.pdf");
152 //mipdf->setResolution(QPrinter::HighResolution);
153 mipdf
->setPageSize(QPrinter::Custom
);
154 mipdf
->setFullPage(false);
155 mipdf
->setPageMargins(3,3,3,4,QPrinter::Millimeter
);
156 mipdf
->setPaperSize(QSize(55,158),QPrinter::Millimeter
);
158 qDebug() << "page rect " << mipdf
->pageRect();
159 qDebug() << "paper rect " << mipdf
->paperRect();
161 if (! painter
.begin(mipdf
))
163 qWarning("failed to open file, is it writable?");
167 painter
.setWindow(0,0,210,600);
168 ui
->filmstrip
->render(&painter
);
172 void MainWindow::on_butonFullscreen_clicked()
174 setWindowState(Qt::WindowFullScreen
);
175 ui
->butonFullscreen
->hide();
178 void MainWindow::aumentaEnSegundo()
181 ui
->countdown
->setText(QString::number(seg
));
187 void MainWindow::tomafotoReal()
190 ui
->countdown
->setText("");
191 ui
->countdown
->setStyleSheet("background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0.195455 rgba(1, 173, 239, 0), stop:1 rgba(45, 49, 146, 0));"
192 "color: rgb(255, 255, 255);"
193 "font: 75 65pt Bitstream Charter;");
196 ui
->filmstrip
->blockSignals(false);
197 ui
->filmstrip
->setEnabled(true);
198 ui
->printbut
->blockSignals(false);
199 ui
->printbut
->setEnabled(true);
200 ui
->buttonBox
->hide();
201 ui
->herramientas
->blockSignals(false);
202 ui
->herramientas
->setEnabled(true);
203 ui
->botonfoto
->blockSignals(false);
204 ui
->botonfoto
->setEnabled(true);
209 case 1: {foto1
->setPixmap(camaru
->getpix()); camaru
->guardImagen("foto" + QString::number(foto
) + ".jpg");} break;
210 case 2: {foto2
->setPixmap(camaru
->getpix()); camaru
->guardImagen("foto" + QString::number(foto
) + ".jpg");} break;
211 case 3: {foto3
->setPixmap(camaru
->getpix()); camaru
->guardImagen("foto" + QString::number(foto
) + ".jpg");} break;
212 case 4: {foto4
->setPixmap(camaru
->getpix()); camaru
->guardImagen("foto" + QString::number(foto
) + ".jpg");} break;
215 QMessageBox pregunta
;
216 pregunta
.setText(tr("Ya no quieres las fotos?"));
217 pregunta
.setInformativeText(tr("te pasaste de fotos, quieres sobre escribir las actuales?"));
218 pregunta
.setStandardButtons(QMessageBox::No
| QMessageBox::Yes
);
219 pregunta
.setDefaultButton(QMessageBox::No
);
220 pregunta
.button(QMessageBox::Yes
)->setText("Si");
221 pregunta
.setStyleSheet("color: rgb(255, 255, 0);"
222 "background-image: url(:/imas/fondo3);"
223 "background-position: padding;"
224 "background-origin: content;"
225 "font: 75 15pt Bitstream Charter;");
226 pregunta
.setParent(this);
227 int ret
= pregunta
.exec();
229 case QMessageBox::Yes
: fotonum
=0; break;
236 this->seleccion(fotonum
);
240 void MainWindow::seSelecciono(const int &id
)
245 case -1 : {camaru
->setpix(foto1
->getpix()); fotonum
=1;} break;
246 case -2 : {camaru
->setpix(foto2
->getpix()); fotonum
=2;} break;
247 case -3 : {camaru
->setpix(foto3
->getpix()); fotonum
=3;} break;
248 case -4 : {camaru
->setpix(foto4
->getpix()); fotonum
=4;} break;
249 default: {fondoid
=id
; camaru
->setFondidd(fondoid
); }
254 this->seleccion(fotonum
);
256 ui
->buttonBox
->show();
263 void MainWindow::on_buttonBox_accepted()
265 ui
->buttonBox
->hide();
268 this->seleccion(fotonum
);
272 void MainWindow::on_buttonBox_rejected()
274 ui
->buttonBox
->hide();
277 this->seleccion(fotonum
);
281 void MainWindow::seleccion(const int &caso
)
286 { foto1
->setGeometry(15-10,14,160+15,120+15);
287 foto2
->setGeometry(15,159,160,120);
288 foto3
->setGeometry(15,303,160,120);
289 foto4
->setGeometry(15,447,160,120);
290 foto1
->conmarco(true); foto2
->conmarco(false); foto3
->conmarco(false); foto4
->conmarco(false);
292 case 2 : { foto1
->setGeometry(15,14,160,120);
293 foto2
->setGeometry(15-10,159,160+15,120+15);
294 foto3
->setGeometry(15,303,160,120);
295 foto4
->setGeometry(15,447,160,120);
296 foto1
->conmarco(false); foto2
->conmarco(true); foto3
->conmarco(false); foto4
->conmarco(false);
298 case 3 : { foto1
->setGeometry(15,14,160,120);
299 foto2
->setGeometry(15,159,160,120);
300 foto3
->setGeometry(15-10,303,160+15,120+15);
301 foto4
->setGeometry(15,447,160,120);
302 foto1
->conmarco(false); foto2
->conmarco(false); foto3
->conmarco(true); foto4
->conmarco(false);
304 case 4 : { foto1
->setGeometry(15,14,160,120);
305 foto2
->setGeometry(15,159,160,120);
306 foto3
->setGeometry(15,303,160,120);
307 foto4
->setGeometry(15-10,447,160+15,120+15);
308 foto1
->conmarco(false); foto2
->conmarco(false); foto3
->conmarco(false); foto4
->conmarco(true);
317 void MainWindow::on_blanegro_clicked(bool checked
)
322 disconnect(timeer
, SIGNAL(timeout()), camaru
, SLOT(newQframe()));
323 disconnect(timeer
, SIGNAL(timeout()), camaru
, SLOT(newQINframe()));
324 disconnect(timeer
, SIGNAL(timeout()), camaru
, SLOT(newQEXTframe()));
327 connect(timeer
, SIGNAL(timeout()), camaru
, SLOT(newQBWframe()));
332 void MainWindow::on_normal_clicked(bool checked
)
337 disconnect(timeer
, SIGNAL(timeout()), camaru
, SLOT(newQBWframe()));
338 disconnect(timeer
, SIGNAL(timeout()), camaru
, SLOT(newQINframe()));
339 disconnect(timeer
, SIGNAL(timeout()), camaru
, SLOT(newQEXTframe()));
342 connect(timeer
, SIGNAL(timeout()), camaru
, SLOT(newQframe()));
347 void MainWindow::on_Invertido_clicked(bool checked
)
352 disconnect(timeer
, SIGNAL(timeout()), camaru
, SLOT(newQBWframe()));
353 disconnect(timeer
, SIGNAL(timeout()), camaru
, SLOT(newQframe()));
354 disconnect(timeer
, SIGNAL(timeout()), camaru
, SLOT(newQEXTframe()));
357 connect(timeer
, SIGNAL(timeout()), camaru
, SLOT(newQINframe()));
361 void MainWindow::on_extrafond_clicked(bool checked
)
366 disconnect(timeer
, SIGNAL(timeout()), camaru
, SLOT(newQBWframe()));
367 disconnect(timeer
, SIGNAL(timeout()), camaru
, SLOT(newQframe()));
368 disconnect(timeer
, SIGNAL(timeout()), camaru
, SLOT(newQEXTframe()));
371 connect(timeer
, SIGNAL(timeout()), camaru
, SLOT(newQEXTframe()));