Фоновое изображение QT не отображается с использованием таблиц стилей

#c #qt #background-image

#c #qt #фоновое изображение

Вопрос:

Я использую QT для C и задаю этот код таблицы стилей:

 QFrame {
    background-image: url(img.png);
}
  

Изображение не отображается! Оно расположено в каталоге debug внутри каталога QT. Почему оно не отображается?

Редактировать:

даже не работает с системой ресурсов

правка 2:

Оно отображается сейчас, но только если я использую QWidget вместо QFrame. Единственная проблема заключается в том, что изображение повторяется при изменении размера окна. Как мне заставить его растягиваться обычным образом вместо этого?

правка 3:

Хорошо, теперь я использовал ТОЛЬКО border-image, и оно растягивается. Однако оно дает сбои (если вы двигаетесь немного быстрее, вы можете перейти к исходному изображению) и очень медленное (если вы изменяете размер недостаточно медленно, оно будет заикаться, и пока ему не удастся растянуться, будет пробел белого цвета). Не могу ли я настроить его нормальный размер? =/

Использование этого кода таблицы стилей:

 QWidget {
border-image: url(:/images/img.png);
}
  

правка 4:

Ну, если я уже этим занимаюсь .. как насчет кликабельных областей на изображениях? Возможно ли это?

правка 5:

да ладно ..кто-нибудь? это важно

Комментарии:

1. ‘области с кликами на изображениях’: Пожалуйста, создайте новый вопрос (если поиск не дает никаких результатов) и удалите правку 4 и правку 5 из вашего исходного вопроса.

Ответ №1:

Добавьте ваше изображение в ресурсы (файл .qrc) вашего приложения. Затем обратитесь к нему в своей таблице стилей:

 QFrame
{
 background-image: url(:/Style/img.png);
}
  

Комментарии:

1. Я создал новый файл .qrc, добавил туда img.png, затем нажал добавить ресурс -> фоновое изображение и выбрал img.png. Все еще не сработало.

2. Может быть, другой виджет покрывает qframe?

3. Да! в этом и заключалась проблема! Спасибо! теперь есть еще одна проблема: всякий раз, когда я изменяю размер окна, фоновое изображение повторяется, и даже если я задаю для главного окна точный размер изображения, оно не подходит правильно.

4. редактировать: не то чтобы оно не подходило правильно, просто кажется, что по какой-то причине оно добавляет часть изображения в нижней части окна… Даже если я сделаю фон не повторяющимся, изображение не будет растягиваться, и вместо этого при изменении размера я просто вижу окно по умолчанию, а часть изображения в нижней части окна перемещается вместе с окном при изменении размера. что является причиной этого?

5. Может быть, лучше попробовать border-image, подобный этому: QFrame { border-image: url (:/Style /img.png) 3px; ширина границы: 3px; отступ: -3px; цвет: rgb (35, 38, 42); }

Ответ №2:

Я думаю, вам следует использовать систему ресурсов Qt вместо изображения внутри папки. Изображения также могут быть уточнены без функции url.