QT – CSS:装饰上的焦点

前端之家收集整理的这篇文章主要介绍了QT – CSS:装饰上的焦点前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试一些CSS,为我的QT应用程序制作一个很酷的用户界面.

我有这个问题:我有一个QPushButton,当它在焦点它有一个矩形,我想要删除.这里有一些屏幕截图:

正常按钮:

聚焦按钮:

我已经尝试添加一些东西(backgroundcolor,text-decoration等)

QPushButton:focus

但它不断突出..

有些提示

这里是QPushButton的CSS代码

QPushButton
{
    color: #b1b1b1;
    background-color: QLinearGradient( x1: 0,y1: 0,x2: 0,y2: 1,stop: 0 #565656,stop: 0.1 #525252,stop: 0.5 #4e4e4e,stop: 0.9 #4a4a4a,stop: 1 #464646);
    border-width: 1px;
    border-color: #1e1e1e;
    border-style: solid;
    border-radius: 6;
    padding: 3px;
    font-size: 12px;
    padding-left: 5px;
    padding-right: 5px;
}

QPushButton:pressed
{
    background-color: QLinearGradient( x1: 0,stop: 0 #2d2d2d,stop: 0.1 #2b2b2b,stop: 0.5 #292929,stop: 0.9 #282828,stop: 1 #252525);
}

QPushButton:hover
{
    border: 2px solid QLinearGradient( x1: 0,stop: 0 #ffa02f,stop: 1 #d7801a);
}

QPushButton:focus {
    /*background-color: red;*/
}

PS.我在Ubuntu 12.04,Qt 4.8,我正在使用这个奇迹css:http://www.yasinuludag.com/darkorange.stylesheet

解决方法

突出显示的矩形可能是QStyle :: PE_FrameFocusRect样式.摆脱它的唯一方法就是实现自定义风格.幸运的是,Qt提供了一种方法来实现一个代理,它在一般情况下使用另一种风格.对于您实现的焦点矩形:
class Style_tweaks : public QProxyStyle
{
    public:

        void drawPrimitive(PrimitiveElement element,const QStyleOption *option,QPainter *painter,const QWidget *widget) const
        {
            /* do not draw focus rectangles - this permits modern styling */
            if (element == QStyle::PE_FrameFocusRect)
                return;

            QProxyStyle::drawPrimitive(element,option,painter,widget);
        }
};

qApp->setStyle(new Style_tweaks);

猜你在找的CSS相关文章