为QSpinBox / QComboBox设置border-radius会对上/下控制产生意外的副作用

时间:2012-05-22 13:25:19

标签: css qt4 pyqt4 qcombobox qspinbox

我正在使用PyQt4创建一个包含许多QLineEdit和QSpinBox输入的接口。我想给它们一个漂亮的圆润外观,但这在旋转盒的情况下会出现问题。

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

QDialog {
    background-color: #444;
}

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

QSpinBox{
    background-color: #eee;
}

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

UI screenshot

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

Glitchy UI screenshot

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

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

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

2 个答案:

答案 0 :(得分:2)

当您更改小部件的样式表时,它将使用QCssStyle进行样式设置。它将每个未设置样式的子控件都恢复为默认样式。你必须设计整体控制以获得理想的外观。它不会混合

答案 1 :(得分:2)

完成此QStyle,您可以将小部件的样式更改为QWindowsStyleQMacStyleQMotifStyle。此外,如果您设置特定小部件的样式表,则只会更新您set的值,其余属性为其inherited小部件中的parent。因此,在设置widget style时,请尝试指定stylesheet