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

时间:2015-08-01 23:23:31

标签: 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_()

产生这个结果:

enter image description here

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

enter image description here

当我移除border-radius时,两个角落都显示正常,而更奇怪,我实际上可以通过设置background-color:white来快速修复此问题。保证金与此问题无关,我只是设定了这个问题,因此更容易看到问题。这里发生了什么?它似乎与this question中的CSS / webkit问题类似。

1 个答案:

答案 0 :(得分:1)

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

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

为什么会这样,我不知道。我们可以检查Qt sources和/或报告那里的错误。

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