Qt 4 feljegyzések #1

Feljegyzés magamnak, meg azoknak akik még ezzel szivatják magukat:

QWidget-ből származtatott osztályok setStyleSheet tagfüggvénye hatástalan, ha nincs implementálva a paintEvent így:


void myWidget::paintEvent(QPaintEvent *)
{
    QStyleOption opt;
    opt.init(this);
    QPainter p(this);
    style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}

Hozzászólások

Sőt, mondok még rosszabbat: Ha mondjuk a myWidgetedben olyan stylesheet-et állítasz be, amely egy adott propertyre vonatkozik, majd adsz egy propertyt egy alá tartozó elemnek, akkor sem történik semmi, amíg újra nem húzod a stylesheetet.

Csak mielőtt te is órákat szopnál vele :) (link, magyarázat: Warning: If the value of the Qt property changes after the style sheet has been set, it might be necessary to force a style sheet recomputation. One way to achieve this is to unset the style sheet and set it again.)