#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.