我希望实现的目标:
在QListView中添加新项时,通过视觉提示来引起注意。我想让背景颜色闪烁一次(从一种颜色渐变到背景色)。
设置
我使用QListView显示QStandardItems的模型/视图。Qt版本为4.7。
我尝试过的方法:
我创建了一个派生自QStyledItemDelegate的新类。我有自己的绘制方法来呈现该项。这部分是有效的。我创建了一个QTimeLine对象,并设置它创建事件以重新绘制项目。
我无法弄清楚如何触发QListView项目的重绘。
在项委托构造函数中:
timeLine = new QTimeLine( 3000, this );
timeLine->setFrameRange( 100, 0 );
connect( timeLine, SIGNAL( frameChanged( int ) ), this, SLOT( update() ) );
timeLine->start();
我尝试连接sizehintChanged事件,但这并不起作用。
void myDelegate::update()
{
const QModelIndex index;
emit QStyledItemDelegate::sizeHintChanged( index );
}
任何建议?这是否可以使用样式表完成?
repaintRequest()
信号,并将其连接到QListview中的repaint()
槽。这将进而调用列表的委托的重绘。 - Abhijith