⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qcleanlooksstyle.cpp

📁 奇趣公司比较新的qt/emd版本
💻 CPP
📖 第 1 页 / 共 5 页
字号:
            painter->drawLine(innerRightLine);            painter->drawLine(innerBottomLine);            painter->setPen(alphaCornerColor);            painter->drawPoint(leftBottomInnerCorner1);            painter->drawPoint(leftBottomInnerCorner2);            painter->drawPoint(rightBottomInnerCorner1);            painter->drawPoint(rightBottomInnerCorner2);            painter->drawPoint(leftTopInnerCorner1);            painter->drawPoint(leftTopInnerCorner2);        }#endif // QT_NO_TABWIDGET    painter->restore();    break ;    case PE_FrameStatusBar:    break;#endif // QT_NO_TABBAR    default:        QWindowsStyle::drawPrimitive(elem, option, painter, widget);        break;    }}/*!  \reimp*/void QCleanlooksStyle::drawControl(ControlElement element, const QStyleOption *option, QPainter *painter,                                   const QWidget *widget) const{    QColor button = option->palette.button().color();    QColor dark;    dark.setHsv(button.hue(),                CL_MIN(255, (int)(button.saturation()*1.9)),                CL_MIN(255, (int)(button.value()*0.7)));    QColor darkOutline;    darkOutline.setHsv(button.hue(),                CL_MIN(255, (int)(button.saturation()*2.0)),                CL_MIN(255, (int)(button.value()*0.6)));    QRect rect = option->rect;    QColor shadow = mergedColors(option->palette.background().color().darker(120),                                 dark.lighter(130), 60);    QColor tabFrameColor = mergedColors(option->palette.background().color(),                                                dark.lighter(135), 60);    QColor highlight = option->palette.highlight().color();    QColor highlightText = option->palette.highlightedText().color();    switch(element) {     case CE_RadioButton: //fall through     case CE_CheckBox:        if (const QStyleOptionButton *btn = qstyleoption_cast<const QStyleOptionButton *>(option)) {            bool hover = (btn->state & State_MouseOver && btn->state & State_Enabled);            if (hover)                painter->fillRect(rect, btn->palette.background().color().lighter(104));            QStyleOptionButton copy = *btn;            copy.rect.adjust(2, 0, -2, 0);            QWindowsStyle::drawControl(element, &copy, painter, widget);        }        break;    case CE_Splitter:        painter->save();        {            // hover appearance            QBrush fillColor = option->palette.background().color();            if (option->state & State_MouseOver && option->state & State_Enabled)                fillColor = fillColor.color().lighter(106);            painter->fillRect(option->rect, fillColor);            QColor grooveColor = mergedColors(dark.lighter(110), option->palette.button().color(),40);            QColor gripShadow = grooveColor.darker(110);            QPalette palette = option->palette;            bool vertical = !(option->state & State_Horizontal);            QRect scrollBarSlider = option->rect;            int gripMargin = 4;            //draw grips            if (vertical) {                for( int i = -20; i< 20 ; i += 2) {                    painter->setPen(QPen(gripShadow, 1));                    painter->drawLine(                        QPoint(scrollBarSlider.center().x() + i ,                               scrollBarSlider.top() + gripMargin),                        QPoint(scrollBarSlider.center().x() + i,                               scrollBarSlider.bottom() - gripMargin));                    painter->setPen(QPen(palette.light(), 1));                    painter->drawLine(                        QPoint(scrollBarSlider.center().x() + i + 1,                               scrollBarSlider.top() + gripMargin  ),                        QPoint(scrollBarSlider.center().x() + i + 1,                               scrollBarSlider.bottom() - gripMargin));                }            } else {                for (int i = -20; i < 20 ; i += 2) {                    painter->setPen(QPen(gripShadow, 1));                    painter->drawLine(                        QPoint(scrollBarSlider.left() + gripMargin ,                               scrollBarSlider.center().y()+ i),                        QPoint(scrollBarSlider.right() - gripMargin,                               scrollBarSlider.center().y()+ i));                    painter->setPen(QPen(palette.light(), 1));                    painter->drawLine(                        QPoint(scrollBarSlider.left() + gripMargin,                               scrollBarSlider.center().y() + 1 + i),                        QPoint(scrollBarSlider.right() - gripMargin,                               scrollBarSlider.center().y() + 1 + i));                }            }        }        painter->restore();        break;#ifndef QT_NO_SIZEGRIP    case CE_SizeGrip:        painter->save();        {            int x, y, w, h;            option->rect.getRect(&x, &y, &w, &h);            int sw = qMin(h, w);            if (h > w)                painter->translate(0, h - w);            else                painter->translate(w - h, 0);            int sx = x;            int sy = y;            int s = 4;            if (option->direction == Qt::RightToLeft) {                sx = x + sw;                for (int i = 0; i < 4; ++i) {                    painter->setPen(QPen(option->palette.light().color(), 1));                    painter->drawLine(x, sy - 1 , sx + 1, sw);                    painter->setPen(QPen(dark.lighter(120), 1));                    painter->drawLine(x, sy, sx, sw);                    sx -= s;                    sy += s;                }            } else {                for (int i = 0; i < 4; ++i) {                    painter->setPen(QPen(option->palette.light().color(), 1));                    painter->drawLine(sx - 1, sw, sw, sy - 1);                    painter->setPen(QPen(dark.lighter(120), 1));                    painter->drawLine(sx, sw, sw, sy);                    sx += s;                    sy += s;                }            }        }        painter->restore();        break;#endif // QT_NO_SIZEGRIP#ifndef QT_NO_TOOLBAR    case CE_ToolBar:        painter->save();        if (const QStyleOptionToolBar *toolbar = qstyleoption_cast<const QStyleOptionToolBar *>(option)) {            QRect rect = option->rect;            bool paintLeftBorder = true;            bool paintRightBorder = true;            bool paintBottomBorder = true;            switch (toolbar->toolBarArea) {            case Qt::BottomToolBarArea:                switch(toolbar->positionOfLine) {                case QStyleOptionToolBar::Beginning:                case QStyleOptionToolBar::OnlyOne:                    paintBottomBorder = false;                default:                    break;                }            case Qt::TopToolBarArea:                switch (toolbar->positionWithinLine) {                case QStyleOptionToolBar::Beginning:                    paintLeftBorder = false;                    break;                case QStyleOptionToolBar::End:                    paintRightBorder = false;                    break;                case QStyleOptionToolBar::OnlyOne:                    paintRightBorder = false;                    paintLeftBorder = false;                default:                    break;                }                if (QApplication::layoutDirection() == Qt::RightToLeft) { //reverse layout changes the order of Beginning/end                    bool tmp = paintLeftBorder;                    paintRightBorder=paintLeftBorder;                    paintLeftBorder=tmp;                }                break;            case Qt::RightToolBarArea:                switch (toolbar->positionOfLine) {                case QStyleOptionToolBar::Beginning:                case QStyleOptionToolBar::OnlyOne:                    paintRightBorder = false;                    break;                default:                    break;                }                break;            case Qt::LeftToolBarArea:                switch (toolbar->positionOfLine) {                case QStyleOptionToolBar::Beginning:                case QStyleOptionToolBar::OnlyOne:                    paintLeftBorder = false;                    break;                default:                    break;                }                break;            default:                break;            }            QColor light = option->palette.background().color().lighter(110);            //draw top border            painter->setPen(QPen(light));            painter->drawLine(rect.topLeft().x(),                        rect.topLeft().y(),                        rect.topRight().x(),                        rect.topRight().y());            if (paintLeftBorder) {                painter->setPen(QPen(light));                painter->drawLine(rect.topLeft().x(),                            rect.topLeft().y(),                            rect.bottomLeft().x(),                            rect.bottomLeft().y());            }            if (paintRightBorder) {                painter->setPen(QPen(shadow));                painter->drawLine(rect.topRight().x(),                            rect.topRight().y(),                            rect.bottomRight().x(),                            rect.bottomRight().y());            }            if (paintBottomBorder) {                painter->setPen(QPen(shadow));                painter->drawLine(rect.bottomLeft().x(),                            rect.bottomLeft().y(),                            rect.bottomRight().x(),                            rect.bottomRight().y());            }        }        painter->restore();        break;#endif // QT_NO_TOOLBAR#ifndef QT_NO_DOCKWIDGET    case CE_DockWidgetTitle:        painter->save();        if (const QStyleOptionDockWidget *dwOpt = qstyleoption_cast<const QStyleOptionDockWidget *>(option)) {            const QStyleOptionDockWidgetV2 *v2                = qstyleoption_cast<const QStyleOptionDockWidgetV2*>(dwOpt);            bool verticalTitleBar = v2 == 0 ? false : v2->verticalTitleBar;            QRect rect = dwOpt->rect;            QRect titleRect = subElementRect(SE_DockWidgetTitleBarText, option, widget);            QRect r = rect.adjusted(0, 0, -1, 0);            if (verticalTitleBar)                r.adjust(0, 0, 0, -1);            painter->setPen(option->palette.light().color());            painter->drawRect(r.adjusted(1, 1, 1, 1));            painter->setPen(shadow);            painter->drawRect(r);            if (verticalTitleBar) {                QRect r = rect;                QSize s = r.size();                s.transpose();                r.setSize(s);                titleRect = QRect(r.left() + rect.bottom()                                    - titleRect.bottom(),                                r.top() + titleRect.left() - rect.left(),                                titleRect.height(), titleRect.width());                painter->translate(r.left(), r.top() + r.width());                painter->rotate(-90);                painter->translate(-r.left(), -r.top());                rect = r;            }            if (!dwOpt->title.isEmpty()) {                QString titleText                    = painter->fontMetrics().elidedText(dwOpt->title,                                            Qt::ElideRight, titleRect.width());                drawItemText(painter,                             titleRect,                             Qt::AlignLeft | Qt::AlignVCenter | Qt::TextShowMnemonic, dwOpt->palette,                             dwOpt->state & State_Enabled, titleText,                             QPalette::WindowText);                }        }        painter->restore();        break;#endif // QT_NO_DOCKWIDGET    case CE_HeaderSection:        painter->save();        // Draws the header in tables.        if (const QStyleOptionHeader *header = qstyleoption_cast<const QStyleOptionHeader *>(option)) {            QPixmap cache;            QString pixmapName = uniqueName(QLatin1String("headersection"), option, option->rect.size());            pixmapName += QLatin1String("-") + QString::number(int(header->position));            pixmapName += QLatin1String("-") + QString::number(int(header->orientation));            QRect r = option->rect;            QColor gradientStopColor;            QColor gradientStartColor = option->palette.button().color();            gradientStopColor.setHsv(gradientStartColor.hue(),                                     CL_MIN(255, (int)(gradientStartColor.saturation()*2)),                                     CL_MIN(255, (int)(gradientStartColor.value()*0.96)));            QLinearGradient gradient(rect.topLeft(), rect.bottomLeft());            if (option->palette.background().gradient()) {                gradient.setStops(option->palette.background().gradient()->stops());            } else {                gradient.setColorAt(0, gradientStartColor);                gradient.setColorAt(0.8, gradientStartColor);                gradient.setColorAt(1, gradientStopColor);            }            painter->fillRect(r, gradient);            if (!UsePixmapCache || !QPixmapCache::find(pixmapName, cache)) {                cache = QPixmap(r.size());                cache.fill(Qt::transparent);                QRect pixmapRect(0, 0, r.width(), r.height());                QPainter cachePainter(&cache);                if (header->orientation == Qt::Vertical) {                    cachePainter.setPen(QPen(dark));                    cachePainter.drawLine(pixmapRect.topRight(), pixmapRect.bottomRight());                    if (header->position != QStyleOptionHeader::End) {                        cachePainter.setPen(QPen(shadow));                        cachePa

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -