样式表不适用于特殊字符pyqt

Stylesheet does not work with special characters pyqt

Could not parse stylesheet of object 0x2d956381ba0

   def change_btn_image(self, btn):
    imagem = self.atv_imagens_bd[self.atividades.get_contador()]
    nome_imagem = imagem[:-4]
    print(nome_imagem)

    btn.setStyleSheet(f"border-image: url(src/main/resources/base/{imagem});")
    return nome_imagem

中所述,HTML(因此,样式表)与 Web 浏览器解析器相比,Qt 的解析功能有点受限。

虽然这些语法在某种程度上相当“自由”,但不应过分突破其 自由度 的界限:对基于字符串的值使用引号总是好的做法 (除了关键字,显然),最重要的是 URL。

在这种情况下,问题出在 utf 字符上,这会导致解析器无法正确识别 url 结束的位置。

只需在 url 路径周围添加引号:

btn.setStyleSheet(f"border-image: url('src/main/resources/base/{imagem}');")