eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingqt, odświeżanie elementu QListViewqt, odświeżanie elementu QListView
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!nf1.ipartners.pl!ipartners.pl!news.sile
    man.pl!not-for-mail
    From: Kicer <...@...c>
    Newsgroups: pl.comp.programming
    Subject: qt, odświeżanie elementu QListView
    Followup-To: pl.comp.programming
    Date: Mon, 13 Jun 2011 20:45:40 +0200
    Organization: Sileman news server
    Lines: 32
    Message-ID: <it5lsj$l68$1@kushnir.sileman>
    NNTP-Posting-Host: host-5db0eeee.sileman.net.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset="ISO-8859-2"
    Content-Transfer-Encoding: 8Bit
    X-Trace: kushnir.sileman 1307990739 21704 93.176.238.238 (13 Jun 2011 18:45:39 GMT)
    X-Complaints-To: u...@k...sileman
    NNTP-Posting-Date: Mon, 13 Jun 2011 18:45:39 +0000 (UTC)
    User-Agent: KNode/4.4.11
    Xref: news-archive.icm.edu.pl pl.comp.programming:190943
    [ ukryj nagłówki ]

    Witam

    mam klasę dziedziczącą po QListiew.
    Mam też klasę dziedziczącą po QStyledItemDelegate uzywanej jako delegat do
    rysowania elementów listy.
    Delegat z kolei wyrysowuje obiekty klasy dziedziczącej po QWidget (itemy
    listy).

    Itemy są stworzene w momencie gdy do modelu, którego uzywa lista, dodawany
    jest nowy element. Wszystko ładnie, pięknie, ale chciałbym w itemach
    wyświetlać animowane svg. Używam QSvgRenderer, który ładnie strzela mi
    sygnałem (repaintNeeded). Wywołuję w itemie update() ale paintEvent nie
    wywołuje się. repaintNeeded połączyłem z update, ale mialem też wersję z
    własnym slotem w którym wywoływalem update - dzięki temu mam pewność ze
    udate się wywołuje a paintEvent (które mam przeładowane) nie.
    Mój paintEvent jest odpalany tylko gdy scroluję listę, zmieniam jej rozmiar,
    jeżdżę po elementach etc. Widać wtedy kolejne klatki animacji svg.

    Zgaduję że item się nie przeładowuje ponieważ nie jest bezpośrednio częscią
    layoutu żadnego widgetu/okna. W delegacie wywołuję:
    itemWidget->render(delegatePainter, QPoint() );

    jak poinformować delegata/listę, żeby odświeżanie itemów odbywało się na ich
    rządanie?

    pozdrawiam

    --
    Michał Walenciak
    gmail.com kicer86
    http://kicer.sileman.net.pl
    gg: 3729519

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: