Seite 1 von 1

[Qt 4.1] QListWidgetItem in einem QListWidget verschieben

Verfasst: 16. April 2006 15:01
von ChMaster
servus,

hier eine kleine aber feine Lösung :)
Der objectName 'lw' ist ein QListWidget.

QListWitgetItem um 1 Position nach oben verschieben
und das oberste um eins nach unten.

Code: Alles auswählen

// prüfen ob Item ausgewählt wurde
if( ui.lw->currentItem() == NULL )
	return;

// hier prüfen wir ob das currentItem() schon das oberste ist
if( ui.lw->row( ui.lw->currentItem() ) <= 0 )
	return;

// currentItem() festlegen
QListWidgetItem *item = ui.lw->currentItem();

// Item um eins nach oben und das erste um eins nach unten verschieben
ui.lw->insertItem( ui.lw->row( ui.lw->currentItem() ), ui.lw->takeItem( ui.lw->row( ui.lw->currentItem() ) ) );

// das verschobene Item als currentItem() festlegen
ui.lw->setCurrentItem( item );

QListWitgetItem um 1 Position nach unten verschieben
und das untere um eins nach oben.

Code: Alles auswählen

// prüfen ob Item ausgewählt wurde
if( ui.lw->currentItem() == NULL )
	return;

// hier prüfen wir ob das currentItem() schon das unterste in der liste ist
if( (ui.lw->row( ui.lw->currentItem()) + 1 ) >= ui.lw->count() )
	return;

// Item um eins nach unten und das untere um eins nach oben verschieben
ui.lw->insertItem( ui.lw->row( ui.lw->currentItem() ), ui.lw->takeItem( ui.lw->row( ui.lw->currentItem() ) + 1 ) );
ich hoffe es nützt was ;)