如何在qtdesigner中使用qss中的qrc资源?

How to use qrc resources in qss in qtdesigner?

我需要使用左侧的搜索图标创建 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的"Edit Style Sheet" window中引用了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 "Edit Style Sheet" window 的 qss 中使用?

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

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

  • 然后点击左边的"Edit Resources"图标,会打开下面的window:

  • 然后按 按钮,select .qrc 然后按 "OK" 按钮。

有了上面的内容,.qrc 图标将在 Qt Designer 预览中可见,它专门将以下内容添加到 .ui:

  <include location="qresources.qrc"/>
 </resources>

另一种从 .qrc 加载图标的直接方法是通过右键单击小部件并select打开 "Add Resource" 选项和 "Resource Browser"会出现,所以你必须按照前面的步骤。


如果您要将 .ui 转换为包含 .qrc 的 .py,那么您还必须转换它,假设文件是​​ main.ui 和 main.qrc 那么您应遵循以下步骤:

pyuic5 main.ui -o foo.py -x
pyrcc5 main.qrc -o main_rc.py