qlistview

Dieses Thema im Forum "C/C++" wurde erstellt von miki, 27.10.2008.

  1. miki

    miki Jungspund

    Dabei seit:
    29.03.2004
    Beiträge:
    14
    Zustimmungen:
    0
    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();
    }
    
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. lukrop

    lukrop Don't feed trolls

    Dabei seit:
    01.08.2007
    Beiträge:
    32
    Zustimmungen:
    0
    Ort:
    Wien
Thema:

qlistview