QtQuick Controls 2 中的新 TableView 是不是支持不同的“角色”

Posted

技术标签:

【中文标题】QtQuick Controls 2 中的新 TableView 是不是支持不同的“角色”【英文标题】:Are different "roles" supported for the new TableView in QtQuick Controls 2QtQuick Controls 2 中的新 TableView 是否支持不同的“角色” 【发布时间】:2020-05-20 17:48:59 【问题描述】:

带有 Qt Quick Controls 2 的新 TableView 似乎运行得非常快 (https://doc.qt.io/qt-5/qml-qtquick-tableview.html)。但演示代码仅基于简单的字符串。我想实现一个可以显示(通过委托)不同 gui 元素的 TableView。示例:(Q)Image、Text、TextInput、特殊 Gui 元素、Text 等等。 我对区分这些“显示”事物的理解是在 Qt 上下文中使用“角色”。 上面的例子只显示了“角色”Qt::DisplayRole, “display”。自定义角色呢? 我怎样才能显示它们?我必须如何更改 TableView 中的“代表”? 感谢您的帮助。

【问题讨论】:

如果您在roleNames() (FooRole, "foo") 中添加相应的条目,您可以通过model.foo 使用任何角色foo 【参考方案1】:

关于这个话题有两个有趣的 youtube 视频: https://www.youtube.com/watch?v=-GOfY1kEP2A https://www.youtube.com/watch?v=oV3aguIZLfg 第一个进入我的方向。似乎解决方案是 DelegateChooser。 不幸的是,“进程”代码非常复杂。所以我把它简化了。您可以在https://github.com/tlaemmlein/TableViewQtQuick2Examples 下看到我的第一个简单项目,该项目基于 Shawn Rutledge 代码。 谢谢。

【讨论】:

以上是关于QtQuick Controls 2 中的新 TableView 是不是支持不同的“角色”的主要内容,如果未能解决你的问题,请参考以下文章

如何在 TableView QtQuick.Controls 2.4 中实现 TableView QtQuick.Controls 1.4 的 Selectable future

QT5:未找到 QTQuick.Controls 2.12 版

QML QtQuick.Controls 2.2 Combobox 没有 selectByMouse;啥是替代方案?

如何运行导入 QtQuick2.0 和 QtQuick.Controls 1.1 的应用程序

无法将 QtQuick Controls 2 与 Pyside 2 一起使用

错误:“未安装模块“QtQuick.Controls””