#include "widget_statusbar.h" #include "ui_widget_statusbar.h" #include 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 | Qt::AlignVCenter); toolBar->addAction(zoomIn); toolBar->addWidget(m_lbl_scale); toolBar->addAction(zoomOut); reinterpret_cast(this->layout())->addWidget(toolBar, 0, Qt::AlignRight); ui->lbl_page->setText(tr("page")); ui->lbl_size->setText(tr("size")); ui->lbl_mousePos->setText(tr("mousePos")); m_lbl_scale->setText(tr("zoom")); } 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; }