2010-11-15 3 views
1

Можно ли растянуть фоновое изображение. На самом деле, у меня есть изображение размером 320X480, я хочу использовать это изображение в качестве фона для экрана QWidget с размером 360X640.Фоновый рисунок изображения для экрана QWidget

Я пытался с следующими:

1). Здесь изображение растягивается для экрана, но изображение с другим изображением загружается вместе с изображением главного экрана:

ui->MainScreen->setStyleSheet("border-image: url(:/images/Main-screen.png);"); 

2). Здесь изображение не растягивается, а отображается как плитка:

ui->MainScreen->setStyleSheet("background-image: url(:/images/Main-screen.png); border: none"); 
ui->MainScreen->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred)); 
ui->MainScreen->setBackgroundRole(QPalette::Background); 

Любые предложения по этому вопросу ....!

Благодаря ...

+0

с вашим первым решением, что вы подразумеваете под «кнопкой с другим изображением загружается»? Я не вижу связи между фоновым изображением, которое вы устанавливаете, с таблицей стилей и другой кнопкой. И, пожалуйста, если вы хотите, чтобы другие помогли, примите ответы на свои предыдущие вопросы! –

+0

На самом деле на главном экране у меня есть кнопка с изображением. Если я использую «border-image», изображение основного экрана также загружается в Button вместе с фактическим изображением кнопки. Таким образом, такие 2 изображения загружены в Button. Надеюсь, у вас проблема! – RajeevSahu

ответ

1

Я думаю, что причина того, что ваша кнопка получает то же изображение в качестве фона, потому что таблицы стилей применяются к ребенку виджеты тоже (я думаю). После выполнения того же кода, который вы использовали в # 1, попробуйте установить таблицу стилей кнопки на что-то еще. Табличка стиля ребенка должна переопределять таблицу стилей родителя.

+0

да, я устанавливаю стиль таблицы стилей по-другому, например: ui-> StartpushButton-> setIcon (QIcon (":/images/Main-screen_button.png")); // ui-> StartpushButton-> setStyleSheet ("image: url (:/images/iPhone_Main-screen_button.png); border: none"); ui-> StartpushButton-> setStyleSheet ("background: transparent; border: none"); Но результат, как сказано в № 1. – RajeevSahu

1

Попробуйте следующее:

ui->MainScreen->setStyleSheet("QMainWindow {border-image: url(:/images/Main-screen.png);}"); 

Это говорит Qt, чтобы изменить фоновое изображение всех QMainWindows в детском дереве. от ui-> MainScreen. Если вы не укажете тип класса или имя объекта, фильтр не будет применяться, и каждый ребенок получит фоновое изображение.

1
QWidget#QMainWindow { style; } 

#subclass после mainclass (QWidget) устанавливает стиль JUST подкласс

Он будет делать то, что вы пытаетесь сделать.

Смежные вопросы