我有QT模型/视图框架的以下问题.我想在表视图项中呈现一个小部件.
首先我的想法是使用
void QAbstractItemView::setIndexWidget( const QModelIndex & index, QWidget * widget )
Run Code Online (Sandbox Code Playgroud)
但是该函数的文档明确指出:
此功能仅应用于显示与数据项对应的可见区域内的静态内容.如果要显示自定义动态内容或实现自定义编辑器窗口小部件,请改为子类QItemDelegate.
所以他们建议在这里使用代表.好吧,到目前为止一切顺利.我知道代理可能会用来创建一个编辑器,它基本上可以是任何QT小部件.但问题出在这里 - 我不希望这个小部件成为编辑器 - 我想总是用这个小部件渲染项目.而不只是"渲染",我需要它具有小部件的确切行为.
现在我想要使用的小部件是一个自定义小部件,它是一些其他小部件的容器(几个复选框,几个带有一些布局的按钮).
我考虑的解决方案是这样的:
这个解决方案似乎有效,但它对我来说闻起来很糟糕.任何人都可以为这个问题更优雅的解决方案?
谢谢.