Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Tirex от Апреля 10, 2006, 13:53



Название: фоновый рисунок у QListWidget
Отправлено: Tirex от Апреля 10, 2006, 13:53
Хочу сделать чтобы на заднем фоне у QListWidget был рисунок.
пытался сделать так:
class PictureList :  public
{
    Q_OBJECT
public:
    PictureList (QWidget *parent = 0, QString fn="");
protected:
    void paintEvent(QPaintEvent *event);
private:
    QPixmap *fon;
};

PictureList::PictureList(QWidget *parent, QString fn)
{ fon = new QPixmap(fn); }

void PictureList::paintEvent(QPaintEvent *event)
{   QPainter painter(this);
   painter.drawPixmap(1,1,fon);
}

Но QListWidget по прежнему белый. элементов списка тоже нет.


Название: фоновый рисунок у QListWidget
Отправлено: Hordi от Апреля 10, 2006, 14:58
Попробуй в конструкторе или где нибудь еще написать так

widget->setPaletteBackgroundPixmap(QPixmap(...));


Название: фоновый рисунок у QListWidget
Отправлено: Tirex от Апреля 10, 2006, 15:58
он будет по всему виджету рисоваться? т.е. как текстура?
а если все таки самому перерисовать как?


Название: фоновый рисунок у QListWidget
Отправлено: Hordi от Апреля 10, 2006, 16:32
>он будет по всему виджету рисоваться? т.е. как текстура?
На заднем фоне будет нарисована подставленная твоя картинка (вместо белого цвета по-умолчанию)


Название: фоновый рисунок у QListWidget
Отправлено: Tirex от Апреля 10, 2006, 21:07
widget->setPaletteBackgroundPixmap(QPixmap(...));
нет у меня в qt 4.1.0 такого


Название: фоновый рисунок у QListWidget
Отправлено: dont от Апреля 11, 2006, 00:03
Подключи Qt3 Support library ;)


Название: фоновый рисунок у QListWidget
Отправлено: Tirex от Апреля 11, 2006, 14:34
подключил все работает, потом убрал сделал так:

    QString fn_str =":/images/top10_fon.png";
    QBrush BGBrush=QBrush(QPixmap(fn_str));
    QPalette qp = palette();
    qp.setBrush(QPalette::Base,BGBrush);
    Tab->clTop10->setPalette(qp);
   
и все таки она рисуется как текстура, т.е. много раз а не один раз в центре.