目录
条形码读取器直接嵌入基于Qt4的GUI。
该小部件可以处理来自视频源或提供给QZBar::scanImage()插槽的单个QImages的条形码。
Q_PROPERTY(QString videoDevice
READ videoDevice
WRITE setVideoDevice
DESIGNABLE false)
设置新设备将打开它并自动设置。
Q_PROPERTY(bool videoEnabled
READ isVideoEnabled
WRITE setVideoEnabled
DESIGNABLE false)
用于暂停/恢复视频扫描。
Q_PROPERTY(bool videoOpened
READ isVideoOpened
DESIGNABLE false)
(重新)设置QZBar::videoDevice最终应导致其打开或关闭。流式传输/扫描过程中的任何错误也将导致设备关闭。
QZBar(QWidget *parent = NULL);
~QZBar();
QString videoDevice() const;
bool isVideoEnabled() const;
bool isVideoOpened() const;
QSize sizeHint() const;
int heightForWidth(int) const;
QPaintEngine *paintEngine() const;
分别检索当前打开的视频设备、视频启用状态、视频打开状态。
返回当前视频设备,如果没有打开设备,则返回空字符串。
如果当前启用了视频扫描,则返回true,否则返回false。
如果当前打开了视频设备,则返回true,否则返回false。
void setVideoDevice(const QString &videoDevice);
void setVideoEnabled(bool videoEnabled = true);
void scanImage(const QImage &image);
打开一个新的视频设备,由于打开设备可能需要一些时间,此调用将立即返回,并且设备将异步打开。
QZBarImage (const QImage &qimg)
: qimg(qimg)
{
QImage::Format fmt = qimg.format();
if(fmt != QImage::Format_RGB32 &&
fmt != QImage::Format_ARGB32 &&
fmt != QImage::Format_ARGB32_Premultiplied)
throw FormatError();
unsigned bpl = qimg.bytesPerLine();
unsigned width = bpl / 4;
unsigned height = qimg.height();
set_size(width, height);
set_format(zbar_fourcc('B','G','R','4'));
unsigned long datalen = qimg.numBytes();
set_data(qimg.bits(), datalen);
if((width * 4 != bpl) ||
(width * height * 4 > datalen))
throw FormatError();
基于现有QImage构建zbar库映像。