有人可以提供代码,而不仅仅是说使用QAbstractItemDelegate吗?
我阅读了QAbstractItemDelegate的文档,但无法理解,请使用示例进行解释.
解决方法 无需使用抽象委托. Styled delegate完成了您需要的大部分工作.使用它并重新实现只需要的行为..H:
#include <qstyledItemDelegate>class MyDelegate : public qstyledItemDelegate{ Q_OBJECT public: explicit MyDelegate(QObject *parent = 0); voID paint(QPainter *painter,const qstyleOptionVIEwItem &option,const QModelindex &index) const; private: bool shouldBeBold(const QModelindex &index);}
的.cpp:
MyDelegate::MyDelegate(QObject *parent) : qstyledItemDelegate(parent){}voID MyDelegate::paint(QPainter *painter,const QModelindex &index) const{ qstyleOptionVIEwItem opt = option; initStyleOption(&opt,index); QVariant data = index.data(...); // pick the data you need here opt.Font.setBold(shouldBeBold(data)); qstyledItemDelegate::paint(painter,opt,index);}bool MyDelegate::shouldBeBold(const QModelindex &index){ // you need to implement this}
然后将委托应用于视图.如果shouldBeBold()返回false,则委托将绘制为标准的.如果返回true,则将应用粗体字体.
我希望你能够开始.
总结以上是内存溢出为你收集整理的c – 如何在QTableView中为特定单元格着色或使文本变为粗体?全部内容,希望文章能够帮你解决c – 如何在QTableView中为特定单元格着色或使文本变为粗体?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)