QPainter и множественное наследование |
Здравствуйте, гость ( Вход | Регистрация )
QPainter и множественное наследование |
Dronte |
5.9.2011, 20:15
Сообщение
#1
|
Студент Группа: Новичок Сообщений: 10 Регистрация: 30.7.2011 Пользователь №: 2770 Спасибо сказали: 0 раз(а) Репутация: 0 |
class XoWidget : public QPushButton,QFrame
На XoWidget хочется нарисовать QPainterом:
Как нарисовать? Да, сорри, первое - это код, а второе - это ошибка. |
|
|
BRE |
5.9.2011, 20:55
Сообщение
#2
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
Нельзя использовать множественное наследование от классов наследников QObject!
А у тебя и QPushButton и QFrame наследники QObject. |
|
|
Dronte |
5.9.2011, 21:20
Сообщение
#3
|
Студент Группа: Новичок Сообщений: 10 Регистрация: 30.7.2011 Пользователь №: 2770 Спасибо сказали: 0 раз(а) Репутация: 0 |
Хорошо, а как иначе решить проблему?
Хочу, чтоб у виджета была рамка и сигнал pressed. И рисовать на нем хочется.. |
|
|
hoRUS |
5.9.2011, 22:56
Сообщение
#4
|
Студент Группа: Участник Сообщений: 30 Регистрация: 10.7.2008 Из: Москва Пользователь №: 231 Спасибо сказали: 5 раз(а) Репутация: 0 |
чтоб у виджета была рамка и сигнал pressed. Наследоваться от QFrame. Переопределить обработчики событий void mousePressEvent(QMouseEvent*); void mouseReleaseEvent(QMouseEvent*); void keyPressEvent(QKeyEvent*); void keyReleaseEvent (QKeyEvent*); и др. Например, если нужно, чтоб сигнал генерировался именно при нажатии мыши, можно сделать примерно так:
Но у сигнала clicked() кнопки более сложное поведение, он генерируется при нажатии и отпускании кнопки, если курсор остается на кнопке (и в некоторых других случаях, например, при нажатии на пробел, когда кнопка в фокусе). Т.ч. переопределять придется много событий. Как вариант, можно наследоваться от QPushButton и рисовать рамку руками QPainter'ом (все равно он используется). Выбирай, что проще и больше подходит. |
|
|
Dronte |
6.9.2011, 1:03
Сообщение
#5
|
Студент Группа: Новичок Сообщений: 10 Регистрация: 30.7.2011 Пользователь №: 2770 Спасибо сказали: 0 раз(а) Репутация: 0 |
Понятно, спасибо за разъяснения.
|
|
|
Текстовая версия | Сейчас: 30.1.2025, 5:13 |