Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
Count0 |
24.12.2012, 11:46
Сообщение
#1
|
|
Студент ![]() Группа: Новичок Сообщений: 17 Регистрация: 30.7.2011 Пользователь №: 2772 Спасибо сказали: 0 раз(а) Репутация: 0
|
Требуется реализовать класс унаследованыый от Qgradient. Однако при описании самого класса мне не удалось найти каких либо виртуальных методов, которые должен реализовывать наследник для того чтобы градиент работал (То есть методов в которых должны производится расчкты яркости для точки). Каким образом можно реализовать подобное наследование (если вообще можно)?
|
|
|
|
|
Алексей1153 |
24.12.2012, 14:53
Сообщение
#2
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2946 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34
|
можно попробовать:
1) переопределить методы базового класса, изменить параметры и передать родителю 2) взять исходники базового класса, переделать в свой класс |
|
|
|
|
Count0 |
24.12.2012, 16:01
Сообщение
#3
|
|
Студент ![]() Группа: Новичок Сообщений: 17 Регистрация: 30.7.2011 Пользователь №: 2772 Спасибо сказали: 0 раз(а) Репутация: 0
|
Цитата(Алексей1153 @ 24.12.2012, 14:53) Link можно попробовать: 1) переопределить методы базового класса, изменить параметры и передать родителю 2) взять исходники базового класса, переделать в свой класс Переопределить без модификатора virtual в базовом классе разве можно? Это по-моему будет замещение и тогда по указателю на базовый класс не будет вызван мой метод из таблицы виртуальных методов. |
|
|
|
|
iReset |
24.12.2012, 17:10
Сообщение
#4
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 178 Регистрация: 6.6.2012 Пользователь №: 3414 Спасибо сказали: 23 раз(а) Репутация: 2
|
Видимо, на данный момент никак. Дело в том, что сейчас в QGradient и, более того, в QBrush жестко прошиты три типа градиентов, существующих в Qt. Посему Qt может работать только с ними.
|
|
|
|
|
Алексей1153 |
25.12.2012, 6:28
Сообщение
#5
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2946 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34
|
Цитата(Count0 @ 24.12.2012, 19:01) Link Переопределить без модификатора virtual в базовом классе разве можно? конечно можно Цитата(Count0 @ 24.12.2012, 19:01) Link по указателю на базовый класс не будет вызван мой метод из таблицы виртуальных методов. совершенно верно. А кто сказал, что нужно будет пользоваться указателем типа "родительский класс" ? |
|
|
|
|
iReset |
25.12.2012, 8:45
Сообщение
#6
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 178 Регистрация: 6.6.2012 Пользователь №: 3414 Спасибо сказали: 23 раз(а) Репутация: 2
|
Цитата(Алексей1153 @ 25.12.2012, 7:28) Link А кто сказал, что нужно будет пользоваться указателем типа "родительский класс" ? А по-другому нельзя. Если, конечно, этот класс хочется использовать при рисовании. С градиентом работает только QBrush, а он принимает только QGradient, причём зная, что у него есть три и только три типа. |
|
|
|
|
Алексей1153 |
25.12.2012, 8:50
Сообщение
#7
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2946 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34
|
iReset, этого в ТЗ не было
Цитата(Count0 @ 24.12.2012, 14:46) Link Требуется реализовать класс унаследованыый от Qgradient. кстати, OGL наверняка умеет все эти градиенты. Но функции рисования надо будет тоже свои делать |
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 23.12.2025, 9:23 |