code_app/app/scanner/widget_statusbar.cpp

90 lines
2.1 KiB
C++
Raw Permalink Normal View History

2022-05-03 10:25:52 +00:00
#include "widget_statusbar.h"
#include "ui_widget_statusbar.h"
#include <QToolBar>
Widget_StatusBar::Widget_StatusBar(QAction *zoomIn, QAction *zoomOut, QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget_StatusBar)
{
ui->setupUi(this);
ui->lbl_devSts->installEventFilter(this);
QToolBar *toolBar = new QToolBar(this);
toolBar->setFixedHeight(20);
m_lbl_scale = new QLabel("0%", toolBar);
m_lbl_scale->setFixedWidth(40);
m_lbl_scale->setAlignment(Qt::AlignHCenter);
toolBar->addAction(zoomIn);
toolBar->addWidget(m_lbl_scale);
toolBar->addAction(zoomOut);
reinterpret_cast<QHBoxLayout*>(this->layout())->addWidget(toolBar, 0, Qt::AlignRight);
2022-08-22 04:47:25 +00:00
ui->lbl_page->setText(tr("page"));
ui->lbl_size->setText(tr("size"));
ui->lbl_mousePos->setText(tr("mousePos"));
m_lbl_scale->setText(tr("zoom"));
2022-05-03 10:25:52 +00:00
}
Widget_StatusBar::~Widget_StatusBar()
{
qDebug("~Widget_StatusBar");
delete ui;
}
void Widget_StatusBar::setPageInfo(int total, int page)
{
ui->lbl_page->setText(QString("%1/%2").arg(page + 1).arg(total));
}
void Widget_StatusBar::setPixelInfo(int width, int height, int bpp)
{
ui->lbl_size->setText(QString("%1*%2*%3").arg(width).arg(height).arg(bpp));
}
void Widget_StatusBar::setMousePosInfo(int x, int y)
{
ui->lbl_mousePos->setText(QString("X:%1, Y:%2").arg(x).arg(y));
}
void Widget_StatusBar::setScale(double scale)
{
m_lbl_scale->setText(QString("%1%").arg((int)(scale * 100.0)));
}
void Widget_StatusBar::setDeviceStatusInfo(const QString &info, bool err)
{
ui->lbl_devSts->setText(info);
if (err)
{
QPalette pe;
pe.setColor(QPalette::WindowText, Qt::red);
ui->lbl_devSts->setPalette(pe);
}
else
{
QPalette pe;
pe.setColor(QPalette::WindowText, Qt::black);
ui->lbl_devSts->setPalette(pe);
}
}
bool Widget_StatusBar::eventFilter(QObject* obj, QEvent* event)
{
if (obj == ui->lbl_devSts)
{
if (event->type() == QEvent::MouseButtonDblClick)
{
emit statusInfoDblClick();
return true;
}
}
return false;
}