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