Seite 1 von 1

[Gelöst] [Anfänger] verschiedene Textfarben in einem String

Verfasst: 7. November 2012 23:05
von thuering
Hallo Qt'ler,

ist es möglich, die Textfarbe innerhalb eines QStrings oder auch einer QStringList (hier: Anwendung in einem QListWidgetItem) zu ändern? Sprich: Der erste Teil des Strings z.B. blau, dann schwarz und am Ende nochmal rot? Momentan kommt jeder Eintrag einer QStringList in ein neues QListWidgetItem - diese sollen jeweils nun auch noch verschiedene Farben haben. Der Hintergrund soll weiß bleiben.

Code: Alles auswählen

QStringList newslist;
newslist = battlelist[0]->news;
for (int i = 0; i < newslist.size(); ++i)
{
     ui->listWidget->addItem(newslist.at(i).toLocal8Bit().constData());
}
Noch viel grundlegender: Wie verpasse ich einer Stringausgabe überhaupt farblichen Text?

Grüße

Thuering

Re: [Anfänger] verschiedene Textfarben in einem String

Verfasst: 8. November 2012 22:57
von Troll.Soft
thuering hat geschrieben:ist es möglich, die Textfarbe innerhalb eines QStrings oder auch einer QStringList zu ändern?
Hm, QStrings haben keine Textfarbe oder ähnliches.
Noch viel grundlegender: Wie verpasse ich einer Stringausgabe überhaupt farblichen Text?
Die modernste Methode geht per StyleSheet.

Der hat mich grün und blau geschlagen.
Wenn ein QLabel diesen Text erhält, kannst du mit StyleSheets nur den ganzen Text erreichen.
Also mehrere QWidgets, QLabel verwenden oder ein Widget direkt mit dem Pinsel bemalen, da kannst Du die Farben ändern wie Du lustig bist.

tschüß
Troll.Soft

Re: [Anfänger] verschiedene Textfarben in einem String

Verfasst: 9. November 2012 10:10
von Christian81
QLabel kann aber auch RichtText und damit sollten auch Farben möglich sein.

Re: [Gelöst] [Anfänger] verschiedene Textfarben in einem Str

Verfasst: 20. Dezember 2012 13:15
von thuering
Ich habe zwar nun nicht IM String verschiedene Farben, habe aber insgesamt die Textfarbe so geändert:

Code: Alles auswählen

                    QListWidgetItem* pItem =new QListWidgetItem("blablablupp");
                    pItem->setForeground(QColor(Qt::red));
                    ui->listWidget->addItem(pItem);