QPainter для самопального виджета |
Здравствуйте, гость ( Вход | Регистрация )
QPainter для самопального виджета |
anater |
11.10.2010, 20:11
Сообщение
#1
|
Студент Группа: Участник Сообщений: 21 Регистрация: 25.12.2009 Пользователь №: 1335 Спасибо сказали: 0 раз(а) Репутация: 0 |
Итак доброшо времени суток.
Имею самопальный виджет унаследованный от QWidget. В нем есть всякие поля тестовые кнопочки и прочая мишура. И есть виджет в котором должна рисоваться картинка... Вопроса собственно два. Как прикрутить QPainter конкретно к данному встроеному виджету? QPainter painter (this)ж в paintEvent не особенно хорошо работает ибо рисуемые элементы запросо налезают на соседей. Как конкретно рисоваться во встроеном виджете? Спасибо за вменяемые ответы |
|
|
igor_bogomolov |
11.10.2010, 21:13
Сообщение
#2
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
Как прикрутить QPainter конкретно к данному встроеному виджету? Отнаследоваться от этого (встроенного ) виджета, переопределить в нем paintEvent и отрисовать то что тебе нужно через QPainter. Либо же, второй вариант, установить фильтр событий в главном виджете (это в котором мишура всякая), ловить событие отрисовки для встроенного и отрисовать то что тебе нужно через QPainter. Третьего не дано.QPainter painter (this)ж в paintEvent не особенно хорошо работает ибо рисуемые элементы запросо налезают на соседей. Это откуда такие глупости
|
|
|
anater |
11.10.2010, 21:22
Сообщение
#3
|
Студент Группа: Участник Сообщений: 21 Регистрация: 25.12.2009 Пользователь №: 1335 Спасибо сказали: 0 раз(а) Репутация: 0 |
Как прикрутить QPainter конкретно к данному встроеному виджету? Отнаследоваться от этого (встроенного ) виджета, переопределить в нем paintEvent и отрисовать то что тебе нужно через QPainter. Либо же, второй вариант, установить фильтр событий в главном виджете (это в котором мишура всякая), ловить событие отрисовки для встроенного и отрисовать то что тебе нужно через QPainter. Третьего не дано.QPainter painter (this)ж в paintEvent не особенно хорошо работает ибо рисуемые элементы запросо налезают на соседей. Это откуда такие глупостиГлупости непосредственно с экрана. Например рисую линию на этом "встроеном" виджете, а она начинается не с угла самого виджета а с угла окна и вылезает из под остальных элементов. Т.е. отрисовывается где попало. Да и как "отнаследоваться"? Хотелось бы сохранить "цельность" конструкции. Может можно переопределить paintEvent без такой хирургии? Если можно то выложи плиз кратенький примерчик. |
|
|
igor_bogomolov |
11.10.2010, 21:26
Сообщение
#4
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
|
|
|
anater |
11.10.2010, 21:35
Сообщение
#5
|
Студент Группа: Участник Сообщений: 21 Регистрация: 25.12.2009 Пользователь №: 1335 Спасибо сказали: 0 раз(а) Репутация: 0 |
Не относящееся к длу порезал.
Раскрывающийся текст
Раскрывающийся текст
Причина редактирования: пользуйся тэтом code
|
|
|
igor_bogomolov |
11.10.2010, 21:57
Сообщение
#6
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
Ну второй вариант примерно так выглядеть будет
В класс Pb добавь bool eventFilter(QObject *obj, QEvent *event)
В конструкторе того же класса
реализация фильтра событий
|
|
|
anater |
13.10.2010, 19:26
Сообщение
#7
|
Студент Группа: Участник Сообщений: 21 Регистрация: 25.12.2009 Пользователь №: 1335 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
bayah |
19.5.2011, 6:34
Сообщение
#8
|
Студент Группа: Участник Сообщений: 31 Регистрация: 23.11.2009 Пользователь №: 1249 Спасибо сказали: 0 раз(а) Репутация: 0 |
А у меня не получается сделать перехватывая события.
Ничего не рисуется на graphicsView виджете. Что не так в этом коде, подскажите: widget.h Раскрывающийся текст
widget.cpp Раскрывающийся текст
ну и тут просто обычный main.cpp: Раскрывающийся текст
Сообщение отредактировал bayah - 19.5.2011, 8:47 |
|
|
Текстовая версия | Сейчас: 23.4.2024, 9:46 |