【问题标题】:Accept edited wigets with QDataWidgetMapper接受使用 QDataWidgetMapper 编辑小部件
【发布时间】:2011-10-06 17:59:29
【问题描述】:

我正在制作一个代表待办事项列表的小型应用程序。 该列表存储在一个自定义模型(源自 QAbstractItemModel)中,并显示在一个 QTableView 中。

我还有一个自定义小部件 (TaskDialog),用于浏览和编辑列表中的任务。 TaskDialog 的子项通过 QDataWidgetMMapper 映射到模型。 在任务对话框中,我还有一些按钮可以浏览我的待办事项列表中的所有任务(QDataWidgetMapper::toPrevious() ...)。

问题在于,如果我在 TaskDialog 中编辑任务(例如任务名称),然后浏览到另一个任务,则模型中未设置新编辑的实体。 但是,如果我在 TaskDialog 中编辑某些内容,则首先将焦点更改为 TaskDialog 的另一个子小部件,然后按其中一个浏览按钮,然后将更改写入模型。

如何实现处于编辑模式的小部件被接受并写入模型。

我还尝试了诺基亚的 QDataWidgetMapper 示例。在那里它完美地工作。但他们使用 QStandardItemModel。

最好的问候 卢克

【问题讨论】:

    标签: qt


    【解决方案1】:

    我找到了解决方案: QDataWidgetMapper 的提交策略必须设置为 QDataWidgetMapper::ManualSubmit。 然后,当我浏览到一个新项目(即按下浏览按钮之一)时,我总是使用 QDataWidgetMapper::submit() 提交更改。

    【讨论】:

      猜你喜欢
      • 2013-07-29
      • 2018-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多