你好,来自这样的好朋友!
今天,我一直在问自己,我在努力实现什么。
谈到这一点,我正在尝试用Qt编写某种终端,它将用于显示来自应用程序不同部分的消息。
现在,我实现了一个模型类(从QAbstractTableModel
派生),它表示这些消息行的QList
,并打算将它们映射到终端窗口中的小部件(考虑了DataWidgetMapper
)。
但后来我突然想到,如果我的应用程序的不同部分同时尝试添加新的信息,该怎么办?
这有可能发生吗?
实施BeginInsertRow
与安全防护相关吗?
长话短说我很困惑。我一个人找不到多少情报。所以我开始怀疑我这样做是否正确。
我在Qt世界是个新手。
(预先谢谢:)
发布于 2017-02-16 17:32:59
由于您是在QAbstractItemModel
之上实现您自己的模型,所以它是否是线程安全取决于您。您必须设计自己的内部数据模型,因此更改和访问模型中数据的方法是您自己的。您可以完全控制它们的内容,这样就可以添加所需的线程锁定机制,以确保不同的线程不能同时更新和访问数据。所有提供数据访问的QAbstractItemModel
方法最终都会调用您的派生方法。
https://stackoverflow.com/questions/42280360
复制相似问题