zoukankan      html  css  js  c++  java
  • Qt之圆角阴影边框

    Qt的主窗体要做出类似WIN7那种圆角阴影边框,这一直是美工的需求。

    圆角阴影边框

    这里是有一些门道的,尤其是,这里藏着一个很大的秘密。

    这个秘密是一个QT的至少横跨3个版本,存在了2年多的BUG。。。

    https://bugreports.qt-project.org/browse/QTBUG-17548

    ok,看完这个BUG的应急解决办法,然后你再需加上如下代码例子,就可见效了

    void MainWindow::paintEvent(QPaintEvent *event)
    {
        QPainterPath _qppath;
        _qppath.setFillRule(Qt::WindingFill);
        _qppath.addRect(10, 10, this->width()-20, this->height()-20);

        QPainter _qpainter(this);
        _qpainter.setRenderHint(QPainter::Antialiasing, true);
        _qpainter.fillPath(_qppath, QBrush(Qt::white));

        QColor color(0, 0, 0, 55);
        for(int i=0; i<10; i++)
        {
            QPainterPath _qppath_shadow;
            _qppath_shadow.setFillRule(Qt::WindingFill);
            _qppath_shadow.addRoundRect(10-i, 10-i, this->width()-(10-i)*2, this->height()-(10-i)*2,5);
            color.setAlpha(155 - qSqrt(i)*55);
            _qpainter.setPen(color);
            _qpainter.drawPath(_qppath_shadow);
        }
    }

  • 相关阅读:
    Xtreme9.0
    Xtreme8.0
    Xtreme8.0
    Xtreme8.0
    Xtreme9.0
    Xtreme8.0
    IEEEXtreme Practice Community Xtreme9.0
    MySQL添加用户、删除用户与授权
    程序员进阶之路—如何独当一面
    PowerDesigner版本控制器设置权限
  • 原文地址:https://www.cnblogs.com/falqs/p/3868584.html
Copyright © 2011-2022 走看看