【问题标题】:Qt stylesheet, background image from filepathQt 样式表,来自文件路径的背景图像
【发布时间】:2014-11-25 03:14:27
【问题描述】:

到目前为止,我发现的所有示例均指资源文件中的背景图像。比如:

 QFrame {
     background-image: url(:/images/header.png);
 }

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

     background-image: url("C:\temp\foo.jpg"); ????
     background-image: file("C:\temp\foo.jpg"); ????

我尝试了所有类型的网址,但没有一个有效。我总是必须在资源中添加文件吗?

【问题讨论】:

  • 如果你使用反斜杠,你需要转义它们,比如C:\\temp\\foo.jpg。使用正斜杠通常更容易。
  • @RetiredNinja 请注意:在 qss 中 G:/2/qt.jpg 有效,但 "G:\\2\\qt.jpg" 无效。你对转义是绝对正确的,但在 qss 中需要使用G:/2/qt.jpg

标签: qt qtstylesheets


【解决方案1】:

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

QFrame{background-image: url("C:/temp/foo.jpg");}

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

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

Windows 的反斜杠在 QSS 中无效,即使您对其进行转义。

你也可以使用相对路径:

QFrame{background-image: url("temp/foo.jpg");}

不过要小心,因为路径在运行时是相对于 CWD 的,用户可能会更改它。

【讨论】:

  • 相对于什么
  • @MichaelScheper en.wikipedia.org/wiki/…
  • 我没有问什么是相对路径;我问路径是相对的。换句话说,在您的示例中,假定的 temp 父级是什么? CWD?一些我不知道的基本 Qt 路径?
  • @MichaelScheper 这是标准的相对路径,这意味着它相对于 cd 或当前目录或您编写的当前工作目录。如果您从 Creator 构建和运行应用程序,cd - 是构建目录,与可执行文件所在的目录不同
  • 太棒了。谢谢。我已编辑您的答案以包含此信息。
猜你喜欢
  • 2011-06-17
  • 2013-06-13
  • 1970-01-01
  • 2018-07-17
  • 2011-05-26
  • 2020-05-15
  • 2016-08-09
  • 2011-01-25
  • 2020-01-01
相关资源
最近更新 更多