Russian Qt Forum

Qt => Общие вопросы => Тема начата: toshcka от Январь 06, 2010, 19:39



Название: кнопка в виде заданного изображения
Отправлено: toshcka от Январь 06, 2010, 19:39
интересует сабж
есть некоторое изображение, как сделать, чтобы кнопка представляла из себя именно это изображение?
какой класс использовать?


Название: Re: кнопка в виде заданного изображения
Отправлено: lit-uriy от Январь 06, 2010, 20:41
Установи кнопке изображение


Название: Re: кнопка в виде заданного изображения
Отправлено: toshcka от Январь 06, 2010, 20:55
Установи кнопке изображение
может я чего-то не понимаю
вы имеете ввиду setIcon() классов QPushButton и QToolButton?
но это просто установит иконку на кнопку, мне не это надо
мне нужна кнопка, которая выглядит именно так, как изображение
пока единственное, что придумал, вывести изображение и обработать события нажатия кнопкой мыши


Название: Re: кнопка в виде заданного изображения
Отправлено: igor_bogomolov от Январь 07, 2010, 00:00
Можно сделать примерно так:
Код
C++ (Qt)
class MyButton : public QPushButton
{
   Q_OBJECT
public:
   MyButton(QWidget * parent = 0) : QPushButton(parent) {
       pixmap.load(QLatin1String("../../qtcreator_logo_256.png"));
       setFixedSize(pixmap.size());
       setMask(pixmap.mask());
   }
protected:
   void paintEvent(QPaintEvent * event) {
       QPainter painter(this);
       painter.drawPixmap(rect(), pixmap);
   }
private:
   QPixmap pixmap;
};


Название: Re: кнопка в виде заданного изображения
Отправлено: SABROG от Январь 07, 2010, 01:23
Или унаследоваться даже от QAbstractButton. Я для своих целей обычно использую QToolButton с включенным flat и в качестве иконки ставлю пиксмап, пока пользователь мышку на картинку не наведет границы кнопки не видны.

Кстати многие забывают об интересной возможности поставить в качестве кисти (QBrush) в palette() QPixmap.