【发布时间】:2015-12-28 09:00:07
【问题描述】:
我正在尝试在 Qt Designer 中创建一个使用自定义 png 图像而不是复选框的复选框。
我通过使用具有以下内容的自定义样式表来做到这一点:
QCheckBox::indicator {
width: 30px;
height: 30px;
}
QCheckBox::indicator:checked
{
image: url(radio_selected.png);
}
QCheckBox::indicator:unchecked
{
image: url(C:\\MYPROJECT\\subdirectory\\radio_unselected.png);
}
QCheckBox::indicator:checked:hover
{
image: url(C:\\MYPROJECT\\subdirectory\\radio_selected.png);
}
QCheckBox::indicator:unchecked:hover
{
image: url(C:\\MYPROJECT\\subdirectory\\radio_unselected.png);
}
使用双反斜杠的绝对路径可提供所需的结果。相对路径条目不起作用。 也没有
QCheckBox::indicator:checked
{
image: url(./radio_selected.png);
}
也没有
QCheckBox::indicator:checked
{
image: url(.\radio_selected.png);
}
也没有
QCheckBox::indicator:checked
{
image: url("radio_selected.png");
}
也没有
QCheckBox::indicator:checked
{
image: url(file:///radio_selected.png);
}
或我尝试过的其他任何东西......我在这里错过了什么?
【问题讨论】:
-
请确保您的应用程序运行的工作目录设置为
"C:\MYPROJECT\subdirectory\" -
我找不到在 Qt Designer 中设置工作目录的任何选项。至于我用来调用 *-ui 文件的 python 脚本,它被设置为在其相应的目录中运行。
-
好的...你能尝试一些其他的相对路径,比如
..\\radio_selected.png、subdirectory\\radio_selected.png、..\\subdirectory\\radio_selected.png等吗?您可以尝试在实际程序中使用 ui 文件,在适当的工作目录中运行,以测试设计人员是否使用了错误/意外的工作目录。 -
啊,QSS 中 URL 的常用语法是
"some/file/path",即带有正斜杠的引号字符串。也请尝试"./radio_selected.png"。 -
好的,如果我从 python 脚本调用 UI 文件,
"./radio_selected.png"似乎已经成功了 - Qt Designer 不会显示具有相对路径的图像。只要它在最终脚本中工作,我就可以接受它 - 仍然很烦人。谢谢,李姆斯!
标签: python qt checkbox qt-designer qtstylesheets