Qt样式表,从filepath的背景图像

Hor*_*ter 3 qt qtstylesheets

到目前为止我找到的所有示例都引用了资源文件中的背景图像.就像是:

 QFrame {
     background-image: url(:/images/header.png);
 }
Run Code Online (Sandbox Code Playgroud)

我想知道,有没有办法直接从文件系统中使用文件?就像是:

     background-image: url("C:\temp\foo.jpg"); ????
     background-image: file("C:\temp\foo.jpg"); ????
Run Code Online (Sandbox Code Playgroud)

我尝试了所有类型的网址,但没有一个工作.我是否总是要在资源中添加文件?

Che*_*byl 9

您不一定需要将文件添加为资源.试试这个例子:

QFrame{background-image: url("C:/temp/foo.jpg");}
Run Code Online (Sandbox Code Playgroud)

请注意标准斜杠,就像您在URL中使用的那样 - 它们不是Windows的反斜杠.因此,例如,这将不起作用:

QFrame{background-image: url("C:\\temp\\foo.jpg");} /* Won't work! */
Run Code Online (Sandbox Code Playgroud)

在QSS中,Windows的反斜杠无效,即使你逃避它们也是如此.

您还可以使用相对路径:

QFrame{background-image: url("temp/foo.jpg");}
Run Code Online (Sandbox Code Playgroud)

但要小心,因为路径在运行时相对于CWD,用户可能会更改.