jjzjj

QAbstractListModel

全部标签

c++ - 如何使用 Item Delegate 检测 QListView <-> QAbstractListModel 中的行选择?

我选择的QListView->QAbstractListModel似乎对内置选择支持为零。我必须从头开始编写所有内容吗?在UI中捕获选择事件,将模型项标记为已选中等?似乎没有开箱即用的支持。奇怪的是有一个QItemSelectionModel确实支持这个,但是你不能将它与QListView一起使用,因为它不是从QAbstract派生的......我的模型类是否应该使用多重继承来继承QItemSelectionModel和QAbstractListModel?否则我不知道如何才能避免自己重写这个功能。我的最终目标是让绘制我的项目的代理知道项目是否被选中,包括在paint和sizeHint

c++ - 将 QML 中对象的 QAbstractListModel 派生列表模型成员绑定(bind)为 Q_PROPERTY

我想出了如何将QAbstractListModel派生列表模型的实例公开和绑定(bind)到/在QML中。但我真正想做的是向QML公开一个对象并将一个成员绑定(bind)为Q_PROPERTY,该成员是QAbstractListModel派生的列表模型。我试过这种方法:classMyObject:publicQObject{Q_OBJECTQ_PROPERTY(MyListModelmyListModelREADmyListModelNOTIFYmyListModelChanged)public:explicitMyObject(QObject*parent=0);MyListMode

C++/QML : ListView is not updated on dataChanged signal from QAbstractListModel

我正在尝试为大型动态C/Fortran模拟编写QMLGui。我要显示的数据存储在FortranCommonblock中,并按固定时间步长更新。我的问题是QMLListView在每个时间步后发出dataChanged信号时不会刷新,尽管Gui接收到该信号(测试在下面的代码中)。我可能错过了一些非常明显的东西,因为当我再次向下和向上轻弹我的ListView时,显示的数据已更新且正确(我猜是因为QML引擎会在元素“看不见”并返回时重新呈现它们再次进入)。所以唯一不起作用的是每次收到dataChanged信号时ListView都会更新,而不仅仅是在重新呈现时更新。下面是对我的方法和相关代码部分

c++ - 从 QAbstractListModel 中删除项目后 QML 崩溃

我在装有OS-X10.8.5的Mac上运行Qt5.1.1和QtCreator2.8.1。我有一个管理ImageData对象的QAbstractListModel。在main.cpp中注册ImageProvider后,我可以使用GridView加载图像并在QML中显示它们。接下来我在View中选择单个图像,例如,下面显示了几个带有橙色边框的选定图像:然后是C++模型函数:deleteSelected(),产生预期的结果:但是,当我试图通过捕获其中一个角来调整窗口大小时,我遇到了崩溃。堆栈跟踪显示:异常类型:EXC_CRASH(SIGABRT)并且我收到Qt错误:ASSERTfailure

c++ - 将新项目添加到基于 QAbstractListModel 的模型时,QML View 不会更新

我已经弄清楚如何将派生自QAbstractListModel的模型绑定(bind)到QMLView。但是接下来我累了就不行了。如果将新项目添加到模型,QMLView将不会更新。这是为什么?DataObject.hclassDataObject{public:DataObject(constQString&firstName,constQString&lastName):first(firstName),last(lastName){}QStringfirst;QStringlast;};SimpleListModel.hclassSimpleListModel:publicQAbstr

c++ - 从 QML ListView 操作 QAbstractListModel 中的数据

我有一个QMLListView,它使用QAbstractListModel子类作为模型。ListView{id:myListViewx:208y:19width:110height:160delegate:myListDelegate{}model:MyListModelopacity:0}模型是MyListItem的列表。classMyListModel:publicQAbstractListModel{Q_OBJECTpublic:enumMyRoles{HeadingRole=Qt::UserRole+1,DescriptionRole,QuantityRole};explici