qlistview

M

miki

Jungspund
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:
#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();
}
 

Ähnliche Themen

GB-errinerung in QT hat Speicherzugrifsfehler

CentOS 6.3 RADIUS - Keine Verbindung möglich

NagiosGrapher 1.7.1 funktioniert nicht

Xubuntu - AVR32-linux crosscompile sqlite

qt Anfängerprobleme

Zurück
Oben