首页| 论坛| 消息

标题:Qtableview里面的单元格内容发生变化 让其背景闪烁一下
作者:toby520
日期:2016-04-19 09:54
内容:

话说那个Qtableview里面的单元格内容发生变化 让其背景闪烁一下的例子有人尝试过吗,
或者说有其他解决思路吗?
效果如下:
使用的是富途牛牛的行情软件的这种闪烁效果
.


#1 [jxgyzhang 04-19 09:58]
需要重写QStandardItem 记录下旧值,然后在setData中根据role去判断新值是否与旧值相同
#2 [stlcours 04-19 16:12]
闪烁一下?用另一个白色窗口挡住再移开,不就行了?
或者Paint整个窗口为白色,然后Sleep(500),再update
#3 回 jxgyzhang 的帖子 [toby520 04-20 08:57]
jxgyzhang:需要重写QStandardItem 记录下旧值,然后在setData中根据role去判断新值是否与旧值相同 (2016-04-19 09:58) 
说的太笼统,重写delegate已经试过
#4 [jxgyzhang 04-21 08:06]
class RCStandardItem :public QStandardItem
{
public:
RCStandardItem();
RCStandardItem(const QString &name);
RCStandardItem(const QString &name, const QString &text);
~RCStandardItem();
int type() const;
QString Name() const;
void setName(const QString &Name);
QString OldText() const;
void TextRollBack();
int Role() const;
protected:
void setData(const QVariant & value, int role = Qt::UserRole + 1);
private:
QString _Name;
QString _OldText;
int _Role;
};
#include "RCStandardItem.h"
RCStandardItem::RCStandardItem()
{
this->_Name = "";
this->_OldText = "";
}
RCStandardItem::RCStandardItem(const QString &name)
{
this->_Name = name;
this->_OldText = "";
}
RCStandardItem::RCStandardItem(const QString &name, const QString &text)
{
this->_Name = name;
this->_OldText = "";
this->setText(text);
}
RCStandardItem::~RCStandardItem()
{
}
int RCStandardItem::type() const
{
return QStandardItem::UserType;
}
QString RCStandardItem::Name() const
{
return _Name;
}
void RCStandardItem::setName(const QString &Name)
{
_Name = Name;
}
QString RCStandardItem::OldText() const
{
return _OldText;
}
void RCStandardItem::TextRollBack()
{
this->setText(this->_OldText);
//QVariant v(this->_OldText);
// QStandardItem::setDat ..

回复 发表
主题 版块