交叉編譯zint並在qt中顯示條碼

下載源碼 https://sourceforge.net/projects/zint/
tar -xvf zint-2.6.7.tar.gz
cd zint-2.6.7/backend_qt/

若不依賴png,則編輯backend_qt.pro
    DEFINES += ZINT_VERSION="\\\"2.6.7\\\""
    改成
    DEFINES += NO_PNG ZINT_VERSION="\\\"2.6.7\\\""

默認編譯的是靜態庫,若要編譯動態庫 則編輯backend_qt.pro
    CONFIG += staticlib
    #CONFIG += dll
    改成
    #CONFIG += staticlib
    CONFIG += dll

生成Makefile
    交叉編譯,則調用交叉編譯出的qt工具
    /usr/local/qt5-arm/bin/qmake
    若是pc編譯,則調用系統工具
    qmake

編譯
make

靜態編譯生成libQtZint.a,動態編譯生成libQtZint.so.2.6.7 libQtZint.so.2 libQtZint.so.2.6 libQtZint.so把字符串轉成條形碼並顯示在label上

#include "qzint.h"

static QImage Text2QImg(const QString &str)
{
    Zint::QZint qzint;
    qzint.setSymbol(BARCODE_CODE128);
    qzint.setScale(1);
    qzint.setText(str);

    QImage img(480, 320, QImage::Format_RGB888);
    QPainter painter(&img);
    QRectF paintRect(30, 50, 430, 230);
    qzint.render(painter, paintRect);
    return img;
}

QImage img = Text2QImage("1234567");
ui->label->setPixmap(QPixmap::fromImage(img));

作者:帥得不敢出門
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章