|
沙发
楼主 |
发表于 2020-5-11 08:54:40
|
只看该作者
有一个小BUG,画的二维码没有居中显示,修改qrwidget.cpp文件里面的void QRWidget::draw(QPainter &painter, int width, int height)函数,修改如下
- void QRWidget::draw(QPainter &painter, int width, int height)
- {
- QColor foreground(Qt::black);
- painter.setBrush(foreground);
- const int qr_width = qr->width > 0 ? qr->width : 1;
- double scale_x = width / qr_width;
- double scale_y = height / qr_width;
- int sx = (width-qr_width*scale_x)/2;
- int sy = (height-qr_width*scale_y)/2;
- for( int y = 0; y < qr_width; y ++)
- {
- for(int x = 0; x < qr_width; x++)
- {
- unsigned char b = qr->data[y * qr_width + x];
- if(b & 0x01)
- {
- QRectF r(x * scale_x+sx, y * scale_y+sy, scale_x, scale_y);
- painter.drawRects(&r, 1);
- }
- }
- }
- }
复制代码 |
|