2

我正在使用 PyQt4 与许多 QLineEdit 和 QSpinBox 输入创建接口。我想给两者一个漂亮的圆形外观,但这在旋转框的情况下会出现问题。

样式表的相关位如下所示:

QDialog {
    background-color: #444;
}

QLabel, QLineEdit, {
    background-color: #eee;
    border-radius: 8px;
}

QSpinBox{
    background-color: #eee;
}

给出一个如下所示的界面:

界面截图

现在,当我border-radius为 QSpinBox 和 QComboBox 包含一个(即使值为 0)时,我得到了这个

有问题的用户界面截图

请注意箭头如何从 Windows XP/vista 主题变为普通的默认外观。

为什么会发生这种情况,我该如何预防?

我想看到的是旋转框和组合框的主要形状像线条编辑一样。我没有尝试设置自定义箭头图像,因为我更喜欢使用本机默认值。或者这真的是我最好/唯一的选择吗?谢谢!

4

2 回答 2

2

当您更改小部件的样式表时,它会使用 QCssStyle 设置样式。它将每个未设置样式的子控件退回到默认样式。您必须设置整个控件的样式以获得所需的外观。它不会混合

于 2012-05-22T18:21:09.920 回答
2

通过这个QStyle,您可以将小部件的样式更改为QWindowsStyleQMacStyleQMotifStyle。而且,如果您设置特定小部件的样式表,则只会set更新您的值,其余属性inherited来自其parent小部件。所以尝试widget style在设置时也像我上面所说的那样指定stylesheet.

于 2012-05-22T18:21:55.723 回答