问题标签 [model-view]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1483 浏览

qt - QListView 不使用委托的大小提示

我有一个呈现自定义项目委托的 QListView。我重写sizeHint()了委托来提供大小,但似乎列表视图没有考虑到这一点。下面是我正在使用的代码:

CardItemDelegate.h

CardItemDelegate.cpp

这就是我使用它的方式:

这些项目在列表视图中正确显示,但从sizeHint()未被调用(我在调用检查中添加了一个调试语句),因此这些项目没有正确的大小。任何人都可以看到可能是什么问题?

0 投票
1 回答
362 浏览

database - Qt:查看具有指向多个其他表的外键列的表中的数据

我有一张桌子Thingsies,有列id, data1, otherTableId, otherTableRowId。我需要最后两列而不仅仅是外键列,因为根据Thingy我想要的信息类型而有所不同。
otherTableId引用表中的 an id,该表OtherTables本身具有称为idand的列tableName。这些tableNames是其他表的名称,例如OtherTable1, OtherTable2。中
的列引用了由给出的。他们自己有更多的数据。Thingies 和其中一个中的条目之间存在一对一的对应关系。所以 Thingies 中的行数是所有otherTableRowIdThingiesidOtherTableotherTableIdOtherTablesOtherTablesOtherTables. (这是糟糕的设计吗?)

我想在具有 、 和 的列中显示 Thingies ,其中QTableView以编程方式从和生成。我应该如何进行?iddata1data2data2otherTableIdotherTableRowId

谢谢。

0 投票
1 回答
3263 浏览

c++ - 更新 QSqlTableModel 中的记录

我正在尝试更新记录,我有这个:

该应用程序编译没有错误,但它不会保存任何编辑。

0 投票
1 回答
266 浏览

c++ - 模型视图困难

我有树视图,我想在其中显示用户通过 file_dialog.getOpenFileNames(); 选择的文件;file_dialog 是 QFileDialog。我确实创建了模型类:

而且我还提供了这个类作为树视图的模型。此类中的索引方法存在问题 - 我不知道要返回什么。
有人可以帮助我并指导我如何使其工作,以便用户选择的文件显示在树视图中吗?

0 投票
0 回答
869 浏览

qt - Qt 何时在 TableView 对象上调用 setSortingEnabled?

我刚从 切换QTableWidgetQTableView。在填充表格之前调用该方法setSortingEnabled会减慢构建速度。因此,如果我使用QTableWidget,我首先填写表格,然后调用setSortingEnabled.

我的问题QTableView是我不知道如何找出表格已填满,分别。何时调用setSortingEnabled而不损失性能。

有没有我可以处理的信号,或者有什么可以覆盖的插槽?

0 投票
1 回答
293 浏览

qt - 如何使用 Qt 模型视图调整项目的矩形大小

我从 编写了自己的模型子类QAbstractItemModel,并且正在使用QTableView类来查看我的模型。由于我正在查看的信息是 <= 2 个符号,我想知道如何调整我的项目的矩形大小。

做这个的最好方式是什么?

0 投票
2 回答
2643 浏览

c++ - 更改数据库连接后如何更新 QSqlTableModel

我有派生自QSqlRelationalTableModel. 我使用 SQLite 数据库。我需要更改数据库文件。我关闭旧的数据库文件,调用 SetDatabaseName("path to new file") 并打开新的数据库文件。现在我只为模型调用 select(),但它返回 false。如果我调用 setTable("table") 并且只有在 select() 之后,一切正常......但是表的名称是相同的......

我没有找到任何可以通知模型数据库连接已更改的方法....您知道通知模型的更好方法吗?


好的。我又回到了这个话题。

更改 db 后,我必须使用相同的表名调用 setTable() 来重新初始化表模型。而且我没有找到更好的方法来重新初始化表格视图,我称之为

这会产生很多不必要的代码调用,但在其他情况下,表视图不知道表模型的变化(例如列数)。

我没有找到更好的方法来重新初始化QSqlTableModelQTableView. 一些想法?

0 投票
1 回答
1414 浏览

qt - Qt:QSqlTableModel + QTableView 与 PostgreSQL 同步

我正在编写一个用于存储一些数据的数据库访问应用程序,并想问一些关于模型/视图架构的问题。

(使用:Qt 4.7.4,自己构建;PostgreSQL 9.0;目标:WinXP、Win7(32/64 位))首先让我解释一下我想要实现的目标以及我目前的位置。

我有两个页面(插入 QStackedWidget 中的子类 QWidget),QTableView 绑定到模型。每个视图都绑定到 PostgreSQL 服务器中的一个表。您可以添加/编辑/删除/排序/过滤项目。每个页面只能被一种类型的用户看到,我们称之为角色 Role1 和 Role2。

与模型相关的所有东西的提交策略都是 OnManualSubmit。

  1. (事务隔离级别 = Serializable。)当两个用户想要编辑(例如)同一行时,我想做一个“SELECT ... FOR UPDATE”查询 - 以确保当有人编辑某些东西时,他会合并他的用较新的更改(如果有的话,就像在 SVN 中一样)。但我只看到 QSqlTableModel 的 submitAll() 方法。也许捕捉信号 beforeUpdate()、beforeDelete()、beforeInsert() 并手动执行“SELECT ... FOR UPDATE”是一种选择。我认为的另一种方法是继承 QSqlTableModel。实现这一目标的干净而好的方法是什么?

  2. 我想定期更新每个页面的 QSqlTableView(最多只能看到一个页面,Role1 用户只能访问 Page1,Role2 => Page2 也是如此)。我想到的第一件事是使用 QTimer 并手动调用 QSqlTableModel 的 select(),但是......不确定这是否很酷。

  3. 我还想定期检查与数据库的连接是否正常,但我认为 QTimer + QSqlDatabase::isOpen () 就可以了。

  4. 现在,这两个表具有相同的主键,并且某些列是相同的。我希望当具有 Role1 的用户更改 Table1 中的一行时,自动更改 Table2 的相应列,反之亦然。我应该在 Postgres 中创建触发器吗?

顺便说一句,数据库很小 - 两个表中的每一个都大约 3-4000 行,大约 10 列(主要是 varchars,1 个文本和 2 个日期列)。

感谢阅读,新年快乐!:)

0 投票
2 回答
512 浏览

asp.net-mvc - 在 MVC 应用程序中放置国家列表的最佳实践位置在哪里?

在繁重的环境应用程序中,我们有用户、位置、bla bla bla ......并且在许多情况下,我们使用对检索国家列表的服务的调用。

实现这一点的“最佳实践”或“正确方法”在哪里。该方法在多个地方被调用,并且许多对象都有一个List<CountryVO>属性。

特别考虑使用 Razor 视图经常不得不将此属性添加到 ModelViews

解决方案是使用 DAL / BLL / SERVICE / UI[s] 架构。

真实例子:

DeliveryZoneVO 类来自一个网络服务,所以一个属性是

User 类有一个 DeliveryZoneVO 列表,如该类所示,这里的“问题”是因为它从 Web 服务中检索数据,所以我只有国家的 ID。

当我准备控制器中的数据以发送到视图时:

但是,在 userMV.user 中,我有 DeliveryZones 以及带有 IdCountries 的 DeliveryZoneVO 对象列表。

在视图中,当我这样做时(例如):

我想显示国家名称,只有 ID。所以我需要在某个地方提供参考。问题在于应该将这些数据放在哪里,这被认为是最佳实践。

是否在所有模型视图中(在示例的情况下, UserModelView() 具有 List 的属性国家?

0 投票
1 回答
109 浏览

qt - 如何在 QAbstractItemView 中显示操纵的模型内容

我有一个QSqlTableModel和一个QTableView显示模型的内容。

我已经设法自定义模型的编辑子类化QStyledItemDelegate和重新实现方法setEditorDatasetModelDataupdateEditorGeometry

我现在需要做的是在视图中放入基于原始模型的文本。让我举一个玩具的例子:

假设我已将值存储"10"在模型中。我想要的是在视图中显示此值的操纵版本,例如"10 kg",但不更改模型的实际内容。

(这只是一个简化的例子,真正的问题不仅仅是放一个后缀。)

我怎样才能做到这一点?我在文档中找不到答案,并查看了与我的问题相似的两个 示例,但它们处理的是新的表示形式,绘制为星号(例如)。我想要的更简单:我希望能够重写字符串。

对不起英语的废话。