Russian Qt Forum
Май 02, 2024, 02:25 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как сделать кнопку произвольной формы  (Прочитано 4877 раз)
Natalie
Гость
« : Ноябрь 08, 2005, 19:34 »

Пожалуйста, спасите!

Никак не получается сделать кнопку произвольной формы. Мне надо, чтобы она выглядела как картинка. Если на нее навести или нажать, то она меняет цвет.
Использую setMask ( const QBitmap & ), но кнопка просто обрезается вместе со стандартными границами.   :cry:

Что мне делать?НепонимающийНепонимающий Очень нужно.... Помогите!!!
Записан
lepsai
Гость
« Ответ #1 : Ноябрь 09, 2005, 02:33 »

Код:

void MyClass::updateMask()
{
QWidget::updateMask();
QBitmap bm(size());
bm.fill(color0);

QPainter p(&bm,this);
p.setBrush( color1);
p.setPen( color1);

                // my draw function: true - draw the control with the color1
drawControl(p, true);

setMask(bm);
}

void MyClass::paintEvent(QPaintEvent * e)
{
QPixmap screen( size() );
QPainter p(&screen);

                // false  - use some colors for painting
drawControl(p, false);

bitBlt(this, 0,0, &screen );
}

Записан
Natalie
Гость
« Ответ #2 : Ноябрь 09, 2005, 11:24 »

Lepsai, как я понимаю, класс MyClass и реализовывает эту нестандартную кнопку. А от каких классов он наследуется. Я не совсем понимаю...   Грустный
Записан
lepsai
Гость
« Ответ #3 : Ноябрь 09, 2005, 12:11 »

class MyClass : public QWidget...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 20.