Qt 4.8:显示窗口时,QPushButton上的文字变为选中状态

时间:2013-12-24 05:34:44

标签: c++ linux qt user-interface qt4

我用一些非常简单的代码初始化了一个简单的QPushButton:

QWidget window;
// ...

QPushButton button("New Project", &window);
// setGeometry... setStyleSheet...
button.show();

但是当我启动应用程序时,似乎按钮中的文本选择如下:

Wierd selected button

样式表中没有任何与蓝色色调相关的内容,当我专注于屏幕上的另一个窗口时,它再次正常:

enter image description here

在OS X上不会发生这种情况,但是在我的Linux安装中它会发生。我认为关于哪个窗口是焦点选择文本的某种问题?

提前感谢您的帮助。 : - )

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题而且几乎生气了:只需使用代理样式来阻止绘制焦点矩形。

创建一个这样的类:

class myStyle : public QProxyStyle
{
    public:
        void drawPrimitive(PrimitiveElement element, const QStyleOption *option,
                           QPainter *painter, const QWidget *widget) const
        {
            if (element == QStyle::PE_FrameFocusRect) return;
            QProxyStyle::drawPrimitive(element, option, painter, widget);
        }
};

然后将此类的对象应用为您的样式:

qApp->setStyle(new myStyle);