• 6806阅读
  • 3回复

[提问]请问QTableView里怎么显示自定义控件 [复制链接]

上一主题 下一主题
离线seahouse
 

只看楼主 倒序阅读 楼主  发表于: 2013-08-04


如图所示。
我将QTableView中的单元格用QItemDelegate进行委托,在createEditor中创建我自己的自定义控件,如图第一个单元格。
现在我想编辑完成后仍然能够显示这样格式的内容,就是A1 和A2间还有个两行显示的东西。而且不能编辑,双击时才编辑。

请问该怎样实现呢?
是在paint里画吗?怎么画呢?
离线XChinux

只看该作者 1楼 发表于: 2013-08-04
QStyledItemDelegate::paint(),重新实现这个吧。编辑状态,也用这个QStyledItemDelegate。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线voidbroken

只看该作者 2楼 发表于: 2013-08-04
引用第1楼XChinux于2013-08-04 17:28发表的  :
QStyledItemDelegate::paint(),重新实现这个吧。编辑状态,也用这个QStyledItemDelegate。


正解, 自己画, 根据单元格的大小自己进行布局画字符
离线seahouse

只看该作者 3楼 发表于: 2013-08-04
根据你们的意思, 是通过painter画字符,那么字符的数据源从哪里来呢? 其实数据是 A1, A2, >=, == 这些。 他们是我自定义控件里的。
virtual void    paint ( QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) const;
是用index.data()吗? 在setModelData设置好,然后在paint里获取?

感谢两位大哥的回答啊! 希望能再给点提示 ~~
快速回复
限100 字节
 
上一个 下一个