Невозможно установить фоновое изображение в таблице стилей Qt

Я запускаю свое приложение Qt через командную строку с параметром -stylesheet. Стили для элементов управления работают, но не когда я пытаюсь загрузить фоновое изображение для MainWindow. Я старался:

QMainWindow{
background-image:url(:image_256_8bit_latest_back.png);
}

Также попытался удалить ":" в фоновом режиме, но не имеет значения. Может кто-нибудь сказать мне, что не так с этой таблицей стилей?

2 ответа

Решение

Где находится изображение, которое вы пытаетесь использовать?

Вы поместили это как ресурс своего приложения?

Если вы хотите использовать изображение, которое является частью ваших ресурсов, у вас должен быть файл ресурса (*.qrc) в вашем проекте. Этот файл должен содержать что-то вроде этого:

<RCC>
   <qresource prefix="/images">
      <file alias="sunset.jpg">sunset.jpg</file>
   </qresource>
</RCC>

Затем вы можете написать этот код в конструкторе вашего QMainWindow:

setStyleSheet("background-image: url(:/images/sunset.jpg);");

Если вы не хотите использовать систему ресурсов Qt, вы можете просто указать путь к вашему образу на вашем диске:

setStyleSheet("background-image: url(res/images/sunset.jpg);");

Будьте осторожны, если вы используете относительный путь: Qt начнется с текущего местоположения, которое может измениться, особенно если вы разрабатываете Qt Creator.

С Qt Creator, когда вы запускаете ваше приложение в режиме отладки, текущий путь находится в debug/, Когда вы запускаете приложение в режиме выпуска, текущий путь находится в release/ (если вы не изменили настройки).

Очевидно, есть проблема с путем к вашему изображению. Попробуйте использовать абсолютный путь, чтобы убедиться, что изображение загружено QT и работает.

Другие вопросы по тегам