我正在尝试一些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);