Проблема с QGraphicsView и QGraphicsScene |
Здравствуйте, гость ( Вход | Регистрация )
Проблема с QGraphicsView и QGraphicsScene |
NordWest |
31.3.2011, 13:40
Сообщение
#1
|
Студент Группа: Участник Сообщений: 86 Регистрация: 26.11.2008 Пользователь №: 433 Спасибо сказали: 1 раз(а) Репутация: 0 |
Пытаюсь написать диалог с выбором цветов для набора элементов, отображаемых в основном окне программы. Для этого создал в дизайнере диалоговое окно, в которое поместил QGraphicsView. Мне нужно, чтобы в нём отображался пример элементов основного окна с элементами выбранных цветов.
В разделе private класса окна объявил объект QGraphicsScene
В конструкторе так:
Не знаю, нужен ли тут connect или задав сцену QGraphicsView я уже задаю связь обновлений. В общем, так не работает, черный фон не появляется. Получилось только если три последних строчки вставить между созданием scene и установкой её объекту ui_grView. Но мне то нужно задать обновление отображения при смене того же цвета фона или цвета одного из других элементов. Выше представлен последний вариант, который я пробовал. Первоначально у меня был вариант из одного примера с переопределением paintEvent:
Т.е. пытался обновлять сцену без connect'a в конструкторе. Но тоже пусто. Не очень я понимаю взаимоотношения QGraphicsView и QGraphicsScene и примеры как-то не помогают. Подскажите что исправить и почему, если не сложно. |
|
|
NordWest |
1.4.2011, 0:57
Сообщение
#2
|
Студент Группа: Участник Сообщений: 86 Регистрация: 26.11.2008 Пользователь №: 433 Спасибо сказали: 1 раз(а) Репутация: 0 |
Так. Я не понимаю, как заставить сцену обновиться с новым цветом. И что вообще значат эти цвета.
Вот у меня QGraphicsView в окне сплошь белый. Как его залить черным фоном? scene->setBackgroundBrush меняет не цвет фона, так? Это некая фоновая кисть. Т.е. если рисуешь зелёный кружок, то он будет нарисован на фоне цвета этой кисти. Или нет? Чтобы полностью белый элемент QGraphicsView сделать чёрным нужно ему какой то параметр указать "чёрный" или взять чёрную кисть и добавить в сцену прямоугольник с размерами во всю сцену. Всё равно непонятно объяснил, потому что сам плохо понял схему QGraphicsView <-> QGraphicsScene. Лучше скажу что надо. В диалоговом окне задается 5 цветов, фон и 4 цвета для примерных кружков на этом фоне. Нужно нарисовать такое превью, чтобы показать как эти разноцветные кружки будут видеться на выбранном фоне. Создал я элемент QGraphicsView в дизайнере. Создал QGraphicsScene. Дальше как? Мне нужно фон самому нарисовать, условно добавив прямоугольник или scene->setBackgroundBrush действительно заливает данной кистью весь фон? Те 4 кружка нужно один раз создать и добавить, а потом как-то менять им цвета? Если я поменяю что-то в scene, что мне нужно, чтобы обновилась и картинка? Где-то так, надеюсь на понимание. |
|
|
Текстовая версия | Сейчас: 15.1.2025, 9:42 |