package ColorListEditor; use strict; use warnings; use QtCore4; use QtGui4; # [0] use QtCore4::isa qw( Qt::ComboBox ); #Q_PROPERTY(Qt::Color color READ color WRITE setColor USER true) # [0] sub NEW { my ( $class, $widget ) = @_; $class->SUPER::NEW( $widget ); this->populateList(); } # [0] sub color { return qVariantValue( this->itemData(this->currentIndex(), Qt::DecorationRole()), 'Qt::Color' ); } # [0] # [1] sub setColor { my ($color) = @_; this->setCurrentIndex(this->findData($color, ${Qt::DecorationRole()})); } # [1] # [2] sub populateList { my $colorNames = Qt::Color::colorNames(); foreach my $i (0..$#{$colorNames}) { my $color = Qt::Color($colorNames->[$i]); this->insertItem($i, $colorNames->[$i]); this->setItemData($i, $color, Qt::DecorationRole()); } } # [2] 1;