我正在制作一个表示待办事项列表的小应用程序。该列表存储在自定义模型(从QAbstractItemModel派生)中,并显示在QTableView中。
我还有一个自定义小部件(TaskDialog),用于浏览和编辑列表中的任务。使用QDataWidgetMMapper将TaskDialog的子项映射到模型。在任务对话框中,我还有一些按钮允许浏览待办事项列表中的所有任务(QDataWidgetMapper::toPrevious() ...)。
问题是,如果我在TaskDialog中编辑任务(例如任务名称),然后浏览到另一个任务,则新编辑的任务不会在模型中设置。但是,如果我在TaskDialog中编辑某些内容,则首先将焦点切换到TaskDialog的另一个子部件,然后按下其中一个浏览按钮,然后将更改写入模型。
如何才能使处于编辑模式的小部件被接受并写入模型。
我也尝试了诺基亚的QDataWidgetMapper的例子。在那里,它工作得很完美。但他们使用的是QStandardItemModel。
向卢克致以最良好的问候
发布于 2011-10-06 17:59:30
我找到了一个解决方案:必须将QDataWidgetMapper的提交策略设置为QDataWidgetMapper::ManualSubmit。然后,当我浏览到一个新的项目时(即一个浏览按钮被按下),我总是用QDataWidgetMapper:: submit ()提交更改。
https://stackoverflow.com/questions/7651516
复制相似问题