tablewidget Zeilenfarbe

Alles rund um die Programmierung mit Qt
Antworten
toem
Beiträge: 124
Registriert: 17. März 2009 14:01

tablewidget Zeilenfarbe

Beitrag von toem »

Wie bekomm ich das hin, das in einem tablewidget die Zeilen unterschiedlich eingefärbt dargestellt werden?

z:b. Zeile 1 grau
Zeile 2 weiss
Zeile 3 grau
Zeile 4 weiss
usw.

Danke vielmals
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

a: Gibts an dem view ne Mothode mit alternate row color irgendwas ?
b: hasst du doch ne methode wo du ne background role fuer nen item setzen kannst, wenn du es manuell machen willst
c: warum TableWidget und nicht TableView?
toem
Beiträge: 124
Registriert: 17. März 2009 14:01

Beitrag von toem »

zu Antwort b

Welche wäre das?
BackgroundRole geht doch nicht Zeilenweise
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

DU sollst dir ned eine der 3 Fragen raussuchen, du sollst versuchen alle zu beantworten ^^
BackgroundRole geht doch nicht Zeilenweise
aber itemweisse, und wer weiss wohl die Zeile ?

Ciao ....
Hulk2442
Beiträge: 115
Registriert: 10. Januar 2007 13:44

Beitrag von Hulk2442 »

Schaue dir hierfür folgendes Bespiel an:
http://doc.trolltech.com/4.1/sql-querymodel.html

Da siehst du wie man Text einfärbt.
Das einzige was du jetzt nur noch machen musst ist nicht den Text einzufärben sondern den Hintergrund.

Das währe eine vereinfachte form

Code: Alles auswählen

class model : public QAbstractTableModel

QVariant model::data(const QModelIndex &index, int role) const
{
	QVariant data;
	
	if( (!index.isValid()) )
	{
		data="?";
	}
	else
	{
		switch(role)
		{
			case Qt::BackgroundRole:
				if( something )
				{
					data = qVariantFromValue(color_1);
				}
				else
				{
					data = qVariantFromValue(color_1);
				}
				break;
			
			default:
				break;
		}//switch
	}//else
	
	return data;
}
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

nicht so kompliziert denken....erst Frage a) beantworten :D
Hulk2442
Beiträge: 115
Registriert: 10. Januar 2007 13:44

Beitrag von Hulk2442 »

Ok ... hast ja recht :D
Wähle die Antwort "A"
Antworten