Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: like-nix от Февраль 26, 2011, 20:03



Название: QAbstractButton
Отправлено: like-nix от Февраль 26, 2011, 20:03
Здравствуйте

Подскажите пожалуйста как создать кнопку используя только QAbstractButton.

Просто хочу знать. Будьте так добры расскажите.

Или если не сложно внесите необходимые изменения в прикрепленный проект.


Название: Re: QAbstractButton
Отправлено: Fat-Zer от Февраль 26, 2011, 20:09
посмотри, какие методы чисто виртуальные и переопредели их...


Название: Re: QAbstractButton
Отправлено: Fat-Zer от Февраль 26, 2011, 20:28
и в чём тогда вопрос?
если не работает - посмотри как QPushButton сделан...


Название: Re: QAbstractButton
Отправлено: like-nix от Февраль 26, 2011, 20:31
Я так и сделал. Там только paintEvent нужно переопределить. реализовал его так =)



Код:
void AbstractButton::paintEvent(QPaintEvent* /*e*/)
{
    QStylePainter      painter(this);
    QStyleOptionButton option;
    option.initFrom(this);
    painter.drawControl(QStyle::CE_PushButton, option);
}

Подумал что чтонибудь нарисуется =)


Название: Re: QAbstractButton
Отправлено: like-nix от Февраль 26, 2011, 20:32
Да наверное придется посмотреть.


Название: Re: QAbstractButton
Отправлено: Fat-Zer от Февраль 26, 2011, 20:51
Подумал что чтонибудь нарисуется =)
так он у тебя стандартную кнопку и рисует.


Название: Re: QAbstractButton
Отправлено: fuCtor от Февраль 28, 2011, 17:08
Так тоже можно, но там еще нужно доопределить некоторые параметры перед передачей на отрисовку. Тут хорошо помогут как уже сказали исходники.

Можно еще вот так:
Код
C++ (Qt)
   QPainter p(this);
if(underMouse())
{
 p.fillRect(rect(), QColor(Qt::red));
} else {
 p.fillRect(rect(), QColor(Qt::green));
}