• 3491阅读
  • 2回复

使用Delegate时怎么隐藏View中对应的内容 [复制链接]

上一主题 下一主题
离线hzxfrank2010
 

只看楼主 倒序阅读 楼主  发表于: 2011-10-18

在处理MVC时遇到一个问题如下:

       使用TreeView作为视图,Delegate中的editor是一个QWidget,在产生QWidget时,对应View中原来的文本依然存在[造成和delegate控件中的文字有所重叠]。有没有什么办法能去掉view中的文本。哪位高手指点一下,谢谢~
      以下是createEditor中的代码:
      
  1. QWidget* NewColor::createEditor(QWidget * parent, const QModelIndex & index)
  2. {
  3. Q_UNUSED(index);
  4. QtColorEditWidget *color_edit_widget = new QtColorEditWidget(parent);
  5. connect(color_edit_widget, SIGNAL(valueChanged(const QColor&)), this, SLOT(setValue(const QColor&)));
  6. return color_edit_widget;
  7. }

QtColorEditWidget 是定义的一个类[该类继承自QWidget,方法省略了,列出了它的成员,该类的效果类似于QtDesigner中编辑颜色属性的控件],定义如下:

class QtColorEditWidget : public QWidget {
Q_OBJECT
private:
QColor m_color;
QLabel *m_pixmapLabel;
QLabel *m_label;
QToolButton *m_button;
};

      
离线wxj120bw

只看该作者 1楼 发表于: 2011-10-19
回 楼主(hzxfrank2010) 的帖子
考虑下QItemDelegate::paint()函数 可能会解决问题
离线hzxfrank2010

只看该作者 2楼 发表于: 2011-10-19
回 1楼(wxj120bw) 的帖子
绘制函数已经写好了,修改了一下窗体setFillBackground为true好像就可以了
快速回复
限100 字节
 
上一个 下一个