Задать фон одному виджету на форме |
Здравствуйте, гость ( Вход | Регистрация )
Задать фон одному виджету на форме |
borune |
7.10.2014, 15:25
Сообщение
#1
|
Участник Группа: Участник Сообщений: 152 Регистрация: 1.1.2011 Пользователь №: 2314 Спасибо сказали: 0 раз(а) Репутация: 0 |
сабж. Хочу сделать фоновое изображение для главного окна (ну или хотя бы просто цвет, если сделаю цвет, то и картинку поставить можно).
Пробую так: У всех виджетов на форме становится зеленый фон. Читаю доки, пробую задать фон только объектам класса QMainWindow следующим образом: эффект точно такой же - у всех зеленеет фон. Читаю еще, пробую задать свойства через имя объекта: тоже не помогает. Подскажите, как же сделать?
|
|
|
marsel |
8.10.2014, 9:22
Сообщение
#2
|
Студент Группа: Новичок Сообщений: 15 Регистрация: 29.1.2013 Пользователь №: 3693 Спасибо сказали: 3 раз(а) Репутация: 0 |
Вообще если честно, очень легко гуглится.
Или я не правильно понял вопрос?
|
|
|
borune |
8.10.2014, 17:10
Сообщение
#3
|
Участник Группа: Участник Сообщений: 152 Регистрация: 1.1.2011 Пользователь №: 2314 Спасибо сказали: 0 раз(а) Репутация: 0 |
Вообще если честно, очень легко гуглится. Или я не правильно понял вопрос?
Вопрос поняли правильно, а может и не совсем) Ваш вариант делает то же самое, что и три варианта, которые я описал выше. Т.е. этот код задает зеленый фон ВСЕМ виджетам, находящимся на форме, а мне нужно задать фон ТОЛЬКО сАмому главному окну, не изменяя фон дочерних виджетов. Сообщение отредактировал borune - 8.10.2014, 17:12 |
|
|
lanz |
8.10.2014, 20:48
Сообщение
#4
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
А все дело в том, что когда вы перегружаете styleSheet или палитру у родительского виджета, перегружается и у дочернего.
Чтобы этого избежать надо явно переоределить перегруженные аттрибуты дочернего виджета:
Так же нужно выставить аттрибут autoFillBackground для дочернего виджета. Об autoFillBackground: http://qt-project.org/doc/qt-4.8/qwidget.h...ouble-buffering О наследовании палитры: http://qt-project.org/doc/qt-4.8/qwidget.html#palette-prop Сообщение отредактировал lanz - 8.10.2014, 20:49 |
|
|
Trisch |
8.10.2014, 20:49
Сообщение
#5
|
Активный участник Группа: Участник Сообщений: 379 Регистрация: 30.1.2012 Из: Запорожье Пользователь №: 3169 Спасибо сказали: 24 раз(а) Репутация: 0 |
borune, Дело в том, что нельзя задать фон QMainWindow. Можно задать фон разделителям. Вот пример
Сообщение отредактировал Trisch - 8.10.2014, 20:49 |
|
|
borune |
9.10.2014, 6:53
Сообщение
#6
|
Участник Группа: Участник Сообщений: 152 Регистрация: 1.1.2011 Пользователь №: 2314 Спасибо сказали: 0 раз(а) Репутация: 0 |
А все дело в том, что когда вы перегружаете styleSheet или палитру у родительского виджета, перегружается и у дочернего. а если у меня дочерних 50 штук, для каждого такое городить?Чтобы этого избежать надо явно переоределить перегруженные аттрибуты дочернего виджета: Дело в том, что нельзя задать фон QMainWindow как это нельзя) фон-то меняется) скажу больше - даже картинку можно на фон поставить
Сообщение отредактировал borune - 9.10.2014, 7:01 |
|
|
Trisch |
9.10.2014, 13:01
Сообщение
#7
|
Активный участник Группа: Участник Сообщений: 379 Регистрация: 30.1.2012 Из: Запорожье Пользователь №: 3169 Спасибо сказали: 24 раз(а) Репутация: 0 |
А все дело в том, что когда вы перегружаете styleSheet или палитру у родительского виджета, перегружается и у дочернего. а если у меня дочерних 50 штук, для каждого такое городить?Чтобы этого избежать надо явно переоределить перегруженные аттрибуты дочернего виджета: Дело в том, что нельзя задать фон QMainWindow как это нельзя) фон-то меняется) скажу больше - даже картинку можно на фон поставитьТогда перефразирую свою фразу. В QMainWindow можно задавать фон, но не стоит. Дело в том что QMainWindow составной виджет, и задавая ему фон задается фон всем виджетам, которые в него входят и их наследникам соответственно. Хочешь задать фон центральной части? Задай фон именно центральному виджету, к примеру так:
Хочешь задать фон меню, задавай фон именно меню, и так далее. |
|
|
borune |
9.10.2014, 14:25
Сообщение
#8
|
Участник Группа: Участник Сообщений: 152 Регистрация: 1.1.2011 Пользователь №: 2314 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
Trisch |
9.10.2014, 17:28
Сообщение
#9
|
Активный участник Группа: Участник Сообщений: 379 Регистрация: 30.1.2012 Из: Запорожье Пользователь №: 3169 Спасибо сказали: 24 раз(а) Репутация: 0 |
Если задавать стиль по идентификатору, то стиль задается только виджетам с данным идентификатором, ну насколько я знаю
В общем попробуй, если не то, будем дальше думать. |
|
|
lanz |
9.10.2014, 18:37
Сообщение
#10
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
Цитата а если у меня дочерних 50 штук, для каждого такое городить? Не для каждого, а только для тех, которые непосредственно вложены в MainWindow. Сообщение отредактировал lanz - 9.10.2014, 18:37 |
|
|
Текстовая версия | Сейчас: 27.4.2024, 18:11 |