Seite 1 von 1

MessreiheN im QLabel ausgeben (gelöst)

Verfasst: 31. März 2013 16:23
von lespaul
Hallo,

ich habe eine Messreihe mit 52 verschiedenen Werten. Ich würde gerne die Häufigkeit dieser in einem Widget anzeigen lassen. Dazu habe ich eine QList mit QLabel's:

Code: Alles auswählen

TabCtrl_Frequency::TabCtrl_Frequency(QTabWidget *parent_tab)
{
    for( int i = 0; i < 52; i++)
    {
        f_list_labels.append(new QLabel(QString("%0").arg(i)));
        f_freq_labels.append(new QLabel(QString("%0").arg(ptr_oc->get_win_frequency_at(i))));
    }

    // Statistics TableWigdet
    f_Tab = new QWidget;

    /* Table settings and fonts */
    f_GridLayout = new QGridLayout;

    for( int i = 0; i < 52; i++)
    {
        f_GridLayout->addWidget(f_list_labels.at(i), 0, i);
        f_GridLayout->addWidget(f_freq_labels.at(i), 1, i);
    }

    parent_tab->addTab(f_Tab, QObject::tr("Frequency"));
    f_Tab->setLayout(f_GridLayout);
}
Ich habe noch einige Layouts wegen der Schönheit, aber das lasse ich der einfachheit halber weg. Nun werden die
Messwerte (gespeichert sortiert in einer QMap) von Zeit zu Zeit aktualisiert. Wie update ich die QLabel dann effizient in meiner QListe mit QLabels?

Re: MessreiheN im QLabel ausgeben

Verfasst: 31. März 2013 16:37
von lespaul
Die Paint Mehode sieht wie folgt aus:

Code: Alles auswählen

void TabCtrl_Frequency::paintFrequency()
{
    if(f_GridLayout != NULL)
    {
        for( int i = 0; i < 31; i++)
        {
            f_GridLayout->addWidget(f_list_labels.at(i), 0, i);
            f_GridLayout->addWidget(f_freq_labels.at(i), 1, i);
        }
    }
}
Jedoch wird nichts aktualisiert?

Re: MessreiheN im QLabel ausgeben

Verfasst: 31. März 2013 16:49
von veeman
Benutz die Funktion QLabel::setText um die neuen Werte zu setzen.
Btw. musst du die Labels einmal per new erstellen und einmal per addWidget zum Anzeigewidget hinzufügen und schließlich mit setText aktualisieren.

Code: Alles auswählen

f_freq_labels.at(i)->setText(QString("%0").arg(ptr_oc->get_win_frequency_at(i)));
mfg veeman

Re: MessreiheN im QLabel ausgeben

Verfasst: 31. März 2013 20:22
von lespaul
Ja genau, mit setText() kann ich die QLabels zur Laufzeit modifizieren. Ich Danke!