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

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

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: "своя" кнопка  (Прочитано 14077 раз)
enola
Гость
« Ответ #15 : Сентябрь 22, 2006, 11:18 »

А могешь пример скинуть если не жалко Улыбающийся
Записан
Sergey B.
Программист
*****
Offline Offline

Сообщений: 544



Просмотр профиля WWW
« Ответ #16 : Сентябрь 22, 2006, 12:22 »

Цитата: "enola"
А могешь пример скинуть если не жалко Улыбающийся


+1  Веселый
Записан
BaltikS
Гость
« Ответ #17 : Сентябрь 22, 2006, 19:12 »

Да не жалко в принципе, вот пример для 4 с исполняемым файлом....
Для 3 тоже сгодится с небольшими передлками http://www.baltiksoft.com/styles.rar
Записан
Dendy
Гость
« Ответ #18 : Сентябрь 22, 2006, 19:39 »

Для того, чтобьІ переопределить стиль кнопки необязательно от неё наследоваться. Гораздо проще перехватить собьІтие. Так вьІ сможете переопределить стиль уже созданньІх кнопок, например в QMessageBox.
Также не нужно рисовать всю кнопку: надпись гораздо проще и функциональнее рисует стиль.

Код:

class ButtonPainter : public QObject
{
public:
  void addButton( QAbstractButton * button )
  {
    button->installEventFilter( this );
  }

protected:
  bool eventFilter( QObject * o, QEvent * e )
  {
    QAbstractButton * button = qobject_cast<QAbstractButton*>( o );
    if ( button && e->type() == QEvent::Paint )
    {
      QStyleOptionButton option;
      option.initFrom( button );
      QPainter p( button );
      p.drawImage( QPoint( 0, 0 ), button->isDown() ? down_image : up_image );
      QStylePainter( button ).drawControl( QStyle::CE_PushButtonLabel, option );
      return true;
    }
    return false;
  }
};
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


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