#include #include #include #include #include "addressbar.h" AddressBar::AddressBar(QWidget *parent) : QLineEdit(parent) , m_progress(100) { QPalette p = palette(); p.setColor(QPalette::Base, QColor(255, 255, 255, 100)); setPalette(p); } void AddressBar::setProgress(int progress) { m_progress = progress; } int AddressBar::progress() const { return m_progress; } void AddressBar::paintEvent(QPaintEvent *event) { QPainter painter(this); int progressWidth = width() * (progress() / 100.0); painter.setPen(Qt::NoPen); painter.setBrush(Qt::white); painter.drawRect(rect()); if (progress() < 100 && !hasFocus()) { painter.setBrush(QColor(50, 50, 200).lighter(200)); painter.drawRect(0, 0, progressWidth, height()); } painter.end(); QLineEdit::paintEvent(event); }