首页 > 解决方案 > 如何在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 中使用?

标签: pythonpyqtpyqt5qt-designerqresource

解决方案


您需要按照以下步骤将 .qrc 添加到 ui:

  • 在右侧应该有一个名为“资源浏览器”的dockwidget(如果它是隐藏的,那么您必须通过单击查看->资源浏览器来启用它)。

    在此处输入图像描述

  • 然后单击左侧名为“编辑资源”的图标,将打开以下窗口:

    在此处输入图像描述

  • 然后按下在此处输入图像描述按钮,选择 .qrc 并按下“确定”按钮。

使用上述内容,.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

推荐阅读