Невозможно установить фоновое изображение в таблице стилей Qt - PullRequest
8 голосов
/ 16 декабря 2010

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

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

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

Ответы [ 2 ]

16 голосов
/ 16 декабря 2010

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

Вы указали его как ресурс вашего приложения?

Если вы хотите использовать изображениекоторый является частью ваших ресурсов, вы должны иметь файл ресурсов (*.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/ (если вы не изменили настройки).

1 голос
/ 17 декабря 2010

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

...