Hallo liebes Forum,
bei einem TextEdit, wo ich den Vorder- und Hintergrund ändern möchte, ist mir etwas seltsames aufgefallen.
textEdit->textColor() bzw. (aus QTextCharFormat) format.foreground().color() sind zu beginn immer schwarz.
textEdit->textBackgroundColor() bzw. (auch aus QTextCharFormat) format.background().color() sind zu beginn auch immer schwarz.
Obwohl der Text im TextEdit schwarz und der Hintergrund weiß ist, sind die Rückgabewerte der oben genannten Funktionen immer schwarz.
Gibt es irgend einen Standard-Wert, wo der Hintergrund gesetzt ist, den ich abfragen könnte?
Viele Grüße, Hakaishi
Vorder- und Hintergund von QTextEdit bzw. QTextCharFormat
Re: Vorder- und Hintergund von QTextEdit bzw. QTextCharForma
Wirklich schwarz, oder Qt::transparent (aka. QColor(0,0,0,0))?
Re: Vorder- und Hintergund von QTextEdit bzw. QTextCharForma
qDebug gibt mir folgendes aus: QColor(ARGB 1, 0, 0, 0) QColor(ARGB 1, 0, 0, 0)
Das erstere ist vom TextEdit und das zweite vom TextCharFormat
Das erstere ist vom TextEdit und das zweite vom TextCharFormat
Re: Vorder- und Hintergund von QTextEdit bzw. QTextCharForma
Jetzt glaub ich weiß ich endlich was du machst und was du vorhast...
1) Ist dein TextFormat Invalid (Kein Text im TextEdit), gibts wohl nen QBrush(Qt::NoBrush) zurück, der ist scharz.
2) Du willst wahrscheinlich einfach nur die Hintergrundfarbe, oder? ->
1) Ist dein TextFormat Invalid (Kein Text im TextEdit), gibts wohl nen QBrush(Qt::NoBrush) zurück, der ist scharz.
2) Du willst wahrscheinlich einfach nur die Hintergrundfarbe, oder? ->
Code: Alles auswählen
QBrush bg = palette().brush(QPalette::Base);
Re: Vorder- und Hintergund von QTextEdit bzw. QTextCharForma
Ich möchte den Text markieren, also nur den Hintergund vom Text. Im TextEdit ist Text, den ich "markieren" möchte. Wenn ich die Hintergrundfarbe nicht mit setBackground() gesetzt habe (QTextCharFormat), dann ist er immer schwarz. Da dies aber nicht der Fall ist und das für einen Anwender irrierend sein könnte, möchte ich das ändern. Aber einfach auf weiß setzen ist halt auch keine Lösung, da jedes Betriebssystem ja anders ist und der Texthintergrund nicht unbedingt weiß.franzf hat geschrieben:Jetzt glaub ich weiß ich endlich was du machst und was du vorhast...
1) Ist dein TextFormat Invalid (Kein Text im TextEdit), gibts wohl nen QBrush(Qt::NoBrush) zurück, der ist scharz.
2) Du willst wahrscheinlich einfach nur die Hintergrundfarbe, oder? ->Code: Alles auswählen
QBrush bg = palette().brush(QPalette::Base);
Re: Vorder- und Hintergund von QTextEdit bzw. QTextCharForma
Wäre dieses Work-around so ok? (format ist QTextCharFormat)
Code: Alles auswählen
QPixmap textPix(16,16);
if(format.foreground().style() == Qt::NoBrush)
textPix.fill(textEdit_->palette().windowText().color());
else
textPix.fill(format.foreground().color());
QPixmap backgroundPix(16,16);
if(format.background().style() == Qt::NoBrush)
backgroundPix.fill(textEdit_->palette().base().color());
else
backgroundPix.fill(format.background().color());