3 #if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
7 #include <QDesktopWidget>
9 #include <zxing/common/GlobalHistogramBinarizer.h>
10 #include <zxing/Binarizer.h>
11 #include <zxing/BinaryBitmap.h>
12 #include <zxing/MultiFormatReader.h>
19 : QDialog( _parent, Qt::Widget | Qt::WindowStaysOnTopHint| Qt::WindowCloseButtonHint ){
21 : QDialog(_parent, Qt::Widget | Qt::WindowCloseButtonHint | Qt::CustomizeWindowHint | Qt::WindowTitleHint | Qt::WindowStaysOnTopHint) {
25 this->setMinimumWidth(50);
39 _y = geometry().y() + cancelButton->height();
40 _w = geometry().width();
41 _h = geometry().height() - cancelButton->height();
43 #if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
44 QScreen *screen = QGuiApplication::primaryScreen();
46 p = screen->grabWindow(0, _x, _y, _w, _h);
49 p = QPixmap::grabWindow(QApplication::desktop()->winId(), _x, _y, _w, _h);
53 QImage image = p.toImage();
55 MultiFormatReader* qrDecoder =
new MultiFormatReader();
57 Ref<LuminanceSource> imageRef(lumImage);
58 GlobalHistogramBinarizer* binarizer =
new GlobalHistogramBinarizer(imageRef);
59 Ref<Binarizer> binarizerRef(binarizer);
60 BinaryBitmap* binaryBitmap =
new BinaryBitmap(binarizerRef);
61 Ref<BinaryBitmap> binaryBitmapRef(binaryBitmap);
63 r = qrDecoder->decode(binaryBitmapRef, DecodeHints::QR_CODE_HINT);
70 decodedString = QString(r->getText()->getText().c_str());
83 emit finished(decodedString);
88 int fh = frameSize().height();
89 int fw = frameSize().width();
90 QStyleOptionTitleBar option;
91 option.initFrom(
this);
96 QRegion rgn(0, 0, fw, fh);
97 QRegion rgn2(15, cancelButton->height() + 10, fw - 30, fh - 80);
100 int captionHeight = style()->pixelMetric(QStyle::PM_TitleBarHeight, &option,
this);
101 QRegion rgn(-7, -captionHeight, fw, fh);
102 QRegion rgn2(5, cancelButton->height() + 3, fw - 28, fh - 75);
104 r = rgn.subtracted(rgn2);