Проблема с 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, 19:57
Сообщение
#2
|
Студент Группа: Участник Сообщений: 86 Регистрация: 26.11.2008 Пользователь №: 433 Спасибо сказали: 1 раз(а) Репутация: 0 |
Спасибо за ссылку. Для общего представления полезно, но конкретных ответов я там не нашел.
Много чего перепробовал, много непоняток. То одно не рисуется, то другое. То фон черный, кружка нет, то наоборот. Но всё таки получилось. Вот рабочий вариант: Раскрывающийся текст
Чтобы фон нормально окрасился оказывается надо в метод setBackgroundBrush передавать не QBrush а QColor. Вот как догадаться об этом? Для объектов QGraphicsEllipseItem можно в методе setPen указать и QPen и QColor. Ну главное удалось добиться результата, хотя и не очень понятно как. |
|
|
Текстовая версия | Сейчас: 28.1.2025, 13:34 |