1 #include "mainwindow.h"
2 #include "ui_mainwindow.h"
4 #include <opencv/highgui.h>
12 //#include <QDesktopWidget>
18 // importante ui->label->setPixmap(QPixmap::fromImage(qimg));
21 MainWindow::MainWindow(QWidget
*parent
) :
23 ui(new Ui::MainWindow
)
28 ui
->buttonBox
->hide();
30 QTimer
* timeer
= new QTimer
;
34 fotonum
= 1; //este sive como indice para saber en que label se musetra la foto..
37 foto1
= new MiLabel();
38 foto2
= new MiLabel();
39 foto3
= new MiLabel();
40 foto4
= new MiLabel();
42 //foto1->setPixmap(QPixmap(":imas/admira"));
48 foto1
->setParent(ui
->filmstrip
);
49 foto2
->setParent(ui
->filmstrip
);
50 foto3
->setParent(ui
->filmstrip
);
51 foto4
->setParent(ui
->filmstrip
);
53 foto1
->setGeometry(25,23,160,120);
54 foto2
->setGeometry(25,171,160,120);
55 foto3
->setGeometry(25,317,160,120);
56 foto4
->setGeometry(25,462,160,120);
59 for(int i
=0;i
<=10;i
++)
61 misfondos
.append(new MiLabel(ui
->scrollAreaFondos
));
63 pixm
= ":fondos/fondo" + QString::number(i
);
64 misfondos
.last()->setPixmap(pixm
);
65 misfondos
.last()->setGeometry(5,(0 + i
*120),160,120);
66 misfondos
.last()->conmarco(true);
67 misfondos
.last()->setidd(i
);
70 //agrega el objeto camaru de tipo camara
73 //acomoda los widgets en principal
74 ui
->verticalLayout_2
->addWidget(ui
->countdown
);
75 ui
->verticalLayout_2
->addWidget(camaru
);
76 ui
->verticalLayout_2
->addSpacerItem(ui
->verticalSpacer
);
77 ui
->verticalLayout_2
->addWidget(ui
->buttonBox
);
78 ui
->verticalLayout_2
->addWidget(ui
->botonfoto
);
81 camaru
->setpix(QPixmap(":imas/admira")); //esto es temporal solo para que muestre alguna imagen en cuanto habra el programa
84 //conecciones debe haber un if y hacer todo esto si abrio bien la camara
86 connect(timeer
, SIGNAL(timeout()), camaru
, SLOT(newQframe()));
89 connect(timi
, SIGNAL(timeout()),this, SLOT(aumentaEnSegundo()));
90 connect(this,SIGNAL(yaaa()),this,SLOT(tomafotoReal()));
92 connect(foto1
, SIGNAL(seleccionado(int)), this, SLOT(seSelecciono(int)));
93 connect(foto2
, SIGNAL(seleccionado(int)), this, SLOT(seSelecciono(int)));
94 connect(foto3
, SIGNAL(seleccionado(int)), this, SLOT(seSelecciono(int)));
95 connect(foto4
, SIGNAL(seleccionado(int)), this, SLOT(seSelecciono(int)));
99 MainWindow::~MainWindow()
104 void MainWindow::on_botonfoto_clicked() //el boton que toma la foto
106 if (camaru
->geterror() == 2)
108 ui
->buttonBox
->hide();
112 seg
=6; // setea seg a 6 para comenzar cuenta regresiva
113 timi
->start(1000); // comienza cuenta regresiva
114 ui
->countdown
->setText("!!Listos!!");
115 ui
->countdown
->show();
119 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.
122 foto1
->conmarco(false); foto2
->conmarco(false); foto3
->conmarco(false); foto4
->conmarco(false);
124 QPrinter
* mipdf
=new QPrinter();
125 mipdf
->setOutputFormat(QPrinter::PdfFormat
);
126 mipdf
->setOutputFileName("/tmp/impresion.pdf");
130 //mipdf->setResolution(QPrinter::HighResolution);
131 mipdf
->setPageSize(QPrinter::Custom
);
132 mipdf
->setFullPage(false);
133 mipdf
->setPageMargins(3,3,3,4,QPrinter::Millimeter
);
134 mipdf
->setPaperSize(QSize(55,158),QPrinter::Millimeter
);
136 qDebug() << "page rect " << mipdf
->pageRect();
137 qDebug() << "paper rect " << mipdf
->paperRect();
138 //mipdf->getPageMargins(qreal izq,qreal arriba,qreal derecho,qreal abajo,QPrinter::DevicePixel);
140 if (! painter
.begin(mipdf
))
142 qWarning("failed to open file, is it writable?");
146 painter
.setWindow(0,0,210,600);
147 ui
->filmstrip
->render(&painter
);
151 void MainWindow::on_butonFullscreen_clicked()
153 setWindowState(Qt::WindowFullScreen
);
154 ui
->butonFullscreen
->hide();
157 void MainWindow::aumentaEnSegundo()
160 ui
->countdown
->setText(QString::number(seg
));
166 void MainWindow::tomafotoReal()
169 ui
->countdown
->setText("");
175 case 1: {foto1
->setPixmap(camaru
->getpix()); camaru
->guardImagen("foto" + QString::number(foto
) + ".jpg");} break;
176 case 2: {foto2
->setPixmap(camaru
->getpix()); camaru
->guardImagen("foto" + QString::number(foto
) + ".jpg");} break;
177 case 3: {foto3
->setPixmap(camaru
->getpix()); camaru
->guardImagen("foto" + QString::number(foto
) + ".jpg");} break;
178 case 4: {foto4
->setPixmap(camaru
->getpix()); camaru
->guardImagen("foto" + QString::number(foto
) + ".jpg");} break;
181 QMessageBox pregunta
;
182 pregunta
.setText(tr("Ya no quieres las fotos?"));
183 pregunta
.setInformativeText(tr("te pasaste de fotos, quieres sobre escribir las actuales?"));
184 pregunta
.setStandardButtons(QMessageBox::No
| QMessageBox::Yes
);
185 pregunta
.setDefaultButton(QMessageBox::No
);
186 pregunta
.setStyleSheet("color: rgb(255, 255, 0);"
187 "background-image: url(:/imas/fondo3);"
188 "background-position: padding;"
189 "background-origin: content;"
190 "font: 75 15pt Bitstream Charter;");
191 pregunta
.setParent(this);
192 int ret
= pregunta
.exec();
194 case QMessageBox::Yes
: fotonum
=0; break;
203 case 1 : {foto1
->conmarco(true); foto2
->conmarco(false); foto3
->conmarco(false); foto4
->conmarco(false);} break;
204 case 2 : {foto2
->conmarco(true); foto1
->conmarco(false); foto3
->conmarco(false); foto4
->conmarco(false);} break;
205 case 3 : {foto3
->conmarco(true); foto2
->conmarco(false); foto1
->conmarco(false); foto4
->conmarco(false);} break;
206 case 4 : {foto4
->conmarco(true); foto2
->conmarco(false); foto3
->conmarco(false); foto1
->conmarco(false);} break;
210 void MainWindow::seSelecciono(const int &id
)
213 ui
->buttonBox
->show();
217 case -1 : {camaru
->setpix(foto1
->getpix()); fotonum
=1;} break;
218 case -2 : {camaru
->setpix(foto2
->getpix()); fotonum
=2;} break;
219 case -3 : {camaru
->setpix(foto3
->getpix()); fotonum
=3;} break;
220 case -4 : {camaru
->setpix(foto4
->getpix()); fotonum
=4;} break;
225 case 1 : {foto1
->conmarco(true); foto2
->conmarco(false); foto3
->conmarco(false); foto4
->conmarco(false);} break;
226 case 2 : {foto2
->conmarco(true); foto1
->conmarco(false); foto3
->conmarco(false); foto4
->conmarco(false);} break;
227 case 3 : {foto3
->conmarco(true); foto2
->conmarco(false); foto1
->conmarco(false); foto4
->conmarco(false);} break;
228 case 4 : {foto4
->conmarco(true); foto2
->conmarco(false); foto3
->conmarco(false); foto1
->conmarco(false);} break;
234 void MainWindow::on_buttonBox_accepted()
236 ui
->buttonBox
->hide();
242 case 1 : {foto1
->conmarco(true); foto2
->conmarco(false); foto3
->conmarco(false); foto4
->conmarco(false);} break;
243 case 2 : {foto2
->conmarco(true); foto1
->conmarco(false); foto3
->conmarco(false); foto4
->conmarco(false);} break;
244 case 3 : {foto3
->conmarco(true); foto2
->conmarco(false); foto1
->conmarco(false); foto4
->conmarco(false);} break;
245 case 4 : {foto4
->conmarco(true); foto2
->conmarco(false); foto3
->conmarco(false); foto1
->conmarco(false);} break;
249 void MainWindow::on_buttonBox_rejected()
251 ui
->buttonBox
->hide();
257 case 1 : {foto1
->conmarco(true); foto2
->conmarco(false); foto3
->conmarco(false); foto4
->conmarco(false);} break;
258 case 2 : {foto2
->conmarco(true); foto1
->conmarco(false); foto3
->conmarco(false); foto4
->conmarco(false);} break;
259 case 3 : {foto3
->conmarco(true); foto2
->conmarco(false); foto1
->conmarco(false); foto4
->conmarco(false);} break;
260 case 4 : {foto4
->conmarco(true); foto2
->conmarco(false); foto3
->conmarco(false); foto1
->conmarco(false);} break;