Seite 1 von 1

QListViewItem Hintergrundfarbe

Verfasst: 27. Oktober 2008 13:54
von miki11
Ich mache meine erste Schritte mit QT Programmierung, jedoch komme ich an eine Stelle nicht weiter:

Ich bekomme es hin ein pixmap in eine qlistviewitem einzufügen, aber sowas banales, wie Hintergrundfarbe schaffe ich nicht.

Mit hilfe von paintCell schaffe ich eine Spalte einzufärben. Ich würde aber gerne nur bestimmte Zellen oder vielleicht Zeilen einfärben wollen.

Dafür ist paintCell wohl nicht gedacht?!

Code: Alles auswählen

#include <qapplication.h>
#include <qlistview.h>
#include <qpainter.h>
#include <qpixmap.h>


class ListViewItem : public QListViewItem
{
	public:
		ListViewItem( QListView * parent, QString label1, QString label2, QString label3 );
		void paintCell ( QPainter * p, const QColorGroup & cg, int column,
						 int width, int align );
};

ListViewItem::ListViewItem( QListView * parent, QString label1, QString
		label2, QString label3 )
	: QListViewItem( parent, label1, label2, label3 )
{
}

void ListViewItem::paintCell ( QPainter * p, const QColorGroup & cg, int
		column, int width, int align )
{
	if( column == 0 ) {
		QColorGroup colRed = cg;
		colRed.setColor( QColorGroup::Base, Qt::red );
		colRed.setColor( QColorGroup::Text, Qt::green );
		QListViewItem::paintCell( p, colRed, column, width, align );
	} else {
		QListViewItem::paintCell( p, cg, column, width, align ) ;
	}
}

int main( int argc, char** argv )
{
	QApplication a( argc, argv );
	QPixmap pm( 11, 11 );
	pm.fill( Qt::red );
	QListView list;
	list.addColumn( "One" );
	list.addColumn( "Two" );
	list.addColumn( "Color", 40 );
	ListViewItem itemOne( &list, "One", "One", "2/red" );
	ListViewItem itemTwo( &list, "Two", "Two", "1/green" );
	ListViewItem itemThree( &list, "Three" , "Three", "1/red" );
	itemThree.setPixmap(2,pm);
	list.show();
	a.setMainWidget( &list );
	return a.exec();
}

Verfasst: 28. Oktober 2008 08:31
von mathies
Hi, musst Du dafür nicht Funktionen im ListView nutzen?

Verfasst: 6. November 2008 13:23
von miki11
hmm ich habe keine Benachrichtigung bekommen per Mail, daß hier eine Antwort steht, schade....

ich habe diese Seite dazu gefunden, aber noch nicht wirklich ausprobiert, kommt jetzt erst dran....
http://doc.trolltech.com/qq/qq08-fancy-list-view.html