• 5469阅读
  • 2回复

[提问]继承QItemDelegate  实现显示html的 自定义控件 [复制链接]

上一主题 下一主题
离线bailizi
 

只看楼主 倒序阅读 楼主  发表于: 2011-05-20
我使用QTableView表格控件,里面有一列需要是一个特殊的控件,它是继承了于QItemDelegate的QResultHighlightItemDelegate,它里面用到的是QTextBrowser,
我利用QSyntaxHighligh ter在QTextBrowser上实现一些关键词的高亮显示。  在paint ()函数里面,我不知道怎么才能把自己的QTextBrowser绘制出来,想请问下高手。
  1. void QResultHighlightItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option,                                         const QModelIndex &index) const{  if (index.column() == 5 ) {  QString text = index.model()->data(index, Qt::DisplayRole).toString();  QTextBrowser textBrowser; textBrowser.setHtml(text); ...........      .................  } else  { QItemDelegate::paint(painter, option, index);  }}



离线soso101

只看该作者 1楼 发表于: 2011-05-21
既然用到代理了为什么不一用到底呢?直接在代理createEditor()就做出想要的窗体就行了么,你如果再用paint的话不是会更加麻烦么?
离线XChinux

只看该作者 2楼 发表于: 2011-05-21
如果你在paintEvent()里写的话,看看QLabel的源码,就会明白了吧?
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个