当我设置边框半径时,角消失了

Jac*_*k M 5 qt pyqt qtstylesheets

下面的代码:

app = QApplication([])
mainWindow = QMainWindow()
mainWindow.show()
textEdit = QTextEdit()
mainWindow.setCentralWidget(textEdit)

app.setStyleSheet("""
QTextEdit
{
    margin: 10px;
    border: 1px solid black;
    border-radius: 20px;
}
""")
app.exec_()
Run Code Online (Sandbox Code Playgroud)

产生这样的结果:

在此输入图像描述

奇怪的是,如果我设置背景颜色,角会按预期显示:

在此输入图像描述

当我删除边框半径时,在这两种情况下,角都显示得很好,更奇怪的是,我实际上可以通过设置背景颜色来快速修复这个问题:白色。边距与问题无关,我只是这样设置,以便更容易看到问题。这里发生了什么?看起来与this question中的CSS/webkit问题类似。

Tri*_*ion 1

我可以用 PyQt 5.6 确认这个问题,我猜这是一个错误。

QTextEdit默认情况下似乎有一个白色背景矩形,如果样式表中没有给定背景颜色,则在样式表中指定的背景上绘制该矩形,但如果样式表中指定了背景颜色,则不会绘制它。

为什么会这样,我不知道。我们可以检查Qt 源代码和/或报告错误。

但您也已经找到了解决方法(将背景颜色指定为白色或任何您喜欢的颜色),所以我建议这样做。