Невозможно установить фоновое изображение в таблице стилей 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 и работает.