首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

请教怎么修改QStyledItemDelegate中进度条的值?

2012-09-27 
请问如何修改QStyledItemDelegate中进度条的值???在Qt QAbstractItemDelegate 类中,有一个例子 Package Ma

请问如何修改QStyledItemDelegate中进度条的值???
在Qt QAbstractItemDelegate 类中,有一个例子 Package Manage

里面通过自定义委托,继承QStyledItemDelegate.,实现了绘制进度条显示数据的功能。

但是由于这里面的进度条是QStyleOptionProgressBar,不是一个Widget。

后期如果Model中的数据有变化,这些进度条的值如何随时更新变化呢?????





进度条例子

C/C++ code
 void WidgetDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option,                            const QModelIndex &index) const {     if (index.column() == 1) {         int progress = index.data().toInt();         QStyleOptionProgressBar progressBarOption;         progressBarOption.rect = option.rect;         progressBarOption.minimum = 0;         progressBarOption.maximum = 100;         progressBarOption.progress = progress;         progressBarOption.text = QString::number(progress) + "%";         progressBarOption.textVisible = true;         QApplication::style()->drawControl(QStyle::CE_ProgressBar,                                            &progressBarOption, painter);     } else         QStyledItemDelegate::paint(painter, option, index);



[解决办法]
你为什么不把它变成一个类的变量呢? 你是在paint里面做这样的事?难怪我说你的局部变量怎么可以一直显示在上面,真猛,你运行的时候看看你的CPU占用率高不高。
[解决办法]
探讨
引用:
QStyleOptionProgressBar progressBarOption;

定义成全局变量。。。



定义成全局变量,是走弯路了。

Qt 的MVC架构已经完成了我说的这个功能,是我的返回值写错了。
这个日志上,有一个完整的说明
http://qimo601.iteye.com/blog/1544843

热点排行