3

如何全局更改一种特定类型小部件的样式?由于那个漂亮的边框,我想让所有 QGroupBox 实例都使用“plastique”样式:

左边是 GTK 风格(我不喜欢);右边,我想要的风格。

塑料风格
(来源:qt-project.org

塑料风格
(来源:qt-project.org

我不想为程序中的每个 QGroupBox 实例设置样式,我想像在 QApplication::setStyle() 中一样全局设置它,但仅适用于 QGroupBox。有办法吗?

谢谢。

4

2 回答 2

0

您可以qss为此使用文件;它们是 Qt 元素的样式表。正如这里所解释的

然后,您可以在您的qss中指定QGroupBox类的样式,类似于您在cssHTML 网站中的操作方式。

于 2013-04-17T19:18:00.150 回答
0

您必须在QWidget::setStyle要重新设置样式的小部件上使用该功能。

如果您希望所有组框具有相同的样式,您可以创建一个子类并仅使用它(没有最简单的方法来重新设置相同小部件类型的所有实例的样式):

class MyGroupBox: public QGroupBox
{
    public:
        MyGroupBox(QWidget* parent) : QGroupBox(parent)
        {
            setStyle(/* the style you want */);
        }
};

另一个不太方便的选择是遍历widget树,根据widget的类名设置样式。

您还可以使用Qt 样式表。请注意,目前自定义样式不支持这些。

于 2013-04-17T19:21:29.310 回答