Как использовать qr c ресурсы в qss в qtdesigner? - PullRequest
1 голос
/ 29 апреля 2020

Мне нужно создать QLineEdit со значком поиска слева, и я делаю это в QtDesigner.

Я добавил свой search_icon.svg в мой файл resources.qr c и назначил этот qr c в качестве ресурса моего приложения, используя браузер ресурсов QtDesigner. Содержимое resources.qr c выглядит следующим образом:

<RCC>
  <qresource prefix = "/icons">
    <file alias = "search_icon.svg">search_icon.svg</file>
  </qresource>
</RCC>

Затем я ссылаюсь на search_icon.svg в окне «Редактировать таблицу стилей» QtDesigner, используя qss:

QLineEdit {
    background-image: url(:/icons/search_icon.svg);
    background-position: left;
    padding: 2 2 2 25;
} 

, но search_icon.svg не отображался в QLineEdit.

mainWindow.ui QtDesigner и resources.qr c, как и search_icon.svg, находятся в одном каталоге.

Нужно ли мне каким-то образом компилировать resources.qr c, чтобы search_icon.svg можно было использовать в qss окна "Редактировать таблицу стилей" QtDesigner?

1 Ответ

2 голосов
/ 29 апреля 2020

Вам нужно добавить .qr c в пользовательский интерфейс, выполнив следующие шаги:

  • Справа должен быть виджет под названием «Обозреватель ресурсов» ( Если он скрыт, то вы должны включить его, нажав View-> Resource Browser).

    enter image description here

  • Затем нажмите на левый значок «Редактировать ресурсы» и откроется следующее окно:

    enter image description here

  • Затем вы нажимаете enter image description here* кнопку 1025 *, выберите .qr c и нажмите кнопку "ОК".

С учетом вышеизложенного значки QQ c будут видны в Qt Предварительный просмотр в конструкторе, который добавляет к .ui следующее:

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

Другой прямой способ загрузить значок из .qr c - открыть форму Qt StyleSheet, щелкнув правой кнопкой мыши на виджете и При выборе опции «Добавить ресурс» появится «Браузер ресурсов», поэтому вы должны выполнить предыдущие шаги.


Если вы идете Если вы хотите преобразовать .ui в .py, который содержит .qr c, то вы также должны конвертировать его, предполагая, что файлы являются main.ui и main.qr c, тогда вы должны выполнить следующие шаги:

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