python - 如何在qtdesigner中使用qss中的qrc资源?
问题描述
我需要使用左侧的搜索图标创建 QLineEdit,我正在 QtDesigner 中进行操作。
我已将我的 search_icon.svg 添加到我的 resources.qrc 文件中,并使用 QtDesigner 的资源浏览器将此 qrc 分配为我的应用程序的资源。resources.qrc 的内容如下所示:
<RCC>
<qresource prefix = "/icons">
<file alias = "search_icon.svg">search_icon.svg</file>
</qresource>
</RCC>
然后我使用 qss 在 QtDesigner 的“编辑样式表”窗口中引用了 search_icon.svg:
QLineEdit {
background-image: url(:/icons/search_icon.svg);
background-position: left;
padding: 2 2 2 25;
}
但 search_icon.svg 没有显示在 QLineEdit 上。
QtDesigner 的 mainWindow.ui 和 resources.qrc 和 search_icon.svg 一样在同一个目录下。
我是否需要以某种方式编译 resources.qrc 以便 search_icon.svg 可以在 QtDesigner 的“编辑样式表”窗口的 qss 中使用?
解决方案
您需要按照以下步骤将 .qrc 添加到 ui:
在右侧应该有一个名为“资源浏览器”的dockwidget(如果它是隐藏的,那么您必须通过单击查看->资源浏览器来启用它)。
然后单击左侧名为“编辑资源”的图标,将打开以下窗口:
使用上述内容,.qrc 图标将在 Qt Designer 预览中可见,该预览专门将以下内容添加到 .ui:
<include location="qresources.qrc"/>
</resources>
从 .qrc 加载图标的另一种直接方法是通过右键单击小部件并选择“添加资源”选项打开 Qt StyleSheet 表单,然后将出现“资源浏览器”,因此您必须按照前面的步骤操作。
如果您要将 .ui 转换为包含 .qrc 的 .py,那么您还必须将其转换,假设文件是 main.ui 和 main.qrc,那么您应该按照以下步骤操作:
pyuic5 main.ui -o foo.py -x
pyrcc5 main.qrc -o main_rc.py
推荐阅读
- php - 如何在 Question2Answers PHP 脚本中无索引类别?
- google-translate - 免费 Google Translate API 的响应格式是什么?
- javascript - 如何从 Javascript 中的自定义属性中获取元素?
- html - 如何在css文件中选择特定的html文件
- c# - 使用 EventCallback 复选框在 Blazor 组件之间进行通信
- java - 从硒日志中提取文本
- javascript - VS Code 不提供导入建议(Next JS、Javascript)
- asp.net-web-api - 是否可以使用身份服务器保护 .net 框架 webapi
- css - CSS Grid 容器缩小到项目大小
- r - 随时间模拟的生/死模型