问题标签 [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 回答
726 浏览

opengl - 从模型视图矩阵导出欧拉旋转

我正在实现一个小部件工具包,它需要一些符号与 Y 轴对齐。

这些符号是使用父对象的模型视图矩阵绘制的,从而使它们也被旋转。

解决方案是在渲染这些符号之前应用反向旋转,但我必须跟踪每次旋转(在我的情况下仅在 Z 轴上),以便应用正确的反向旋转。可悲的是,每次“失控”的旋转都会导致真实模型视图矩阵旋转和保持的“全局”旋转之间的错位。

如何直接从模型视图矩阵中推导出 eurler 旋转角度?

0 投票
1 回答
143 浏览

c# - 如何将 ListView 链接到 ModelView?

我想ListView在我的 ModelView 中使用产品的名称和代码创建一个,但是当我这样做时:

仅显示产品指南。

我怎样才能用该属性创建一个列,Product.Name并用该属性创建另一个列Product.Code

0 投票
2 回答
696 浏览

android - Android中的glUnProject问题

在我的游戏中,我需要找出玩家触摸的位置。MotionEvent.getX() 和 MotionEvent.getY() 返回窗口坐标。所以我做了这个函数来测试将窗口坐标转换为OpenGL坐标:

X 和 y 从几乎 -33 振荡到几乎 +33。Z 通常是 10。我使用 MatrixGrabber 是不是错了?

0 投票
1 回答
1279 浏览

c++ - 关于如何使用 Qt 模型视图类的建议

所以我一直在用 C++ 编写数独游戏。我已经完成并测试了大部分游戏逻辑,但我想在它之上使用 Qt 作为 GUI。我试图找出满足我需要的 Qt 类的最佳方式。

作为测试,我使用了 QAbstractTableModel。我将它子类化并让它访问我现有的数据模型和我现有的控制器。现在我正在使用 QTableView 来获得数独板的基本渲染和基本的“编辑”(您可以更改任何值)。它看起来不像我想要的,但功能都在那里(或可以添加)。

我想制作一个数据模型和控制器,以便在 C++ 中对其进行修改,而不依赖于框架。然后我想让Qt坐在上面。所以我有这个工作,这是一个快速的“图表”,说明这些东西如何在高层次上进行通信

我的问题是,如何修改 QTableView 或者我应该创建自己的视图或 QWidget 以便以我想要的方式显示数据?

理想情况下,我想显示一个固定大小的表格(没有标题,没有调整大小),并且不允许多选。关于如何渲染各种字体样式/颜色有一些自定义,但我认为我可以很容易地处理这些。我还想将每个单元格呈现为一个数字,或者像这样的“标记”:

很明显我不能继续使用开箱即用的 QTableView 。我创建自己的 QStyledItemDelegate 并仍然使用 QTableView 吗?我需要创建一个完整的小部件吗?如果我创建

只是从了解各种 Qt 类功能的人那里寻找一些建议/指导。

0 投票
1 回答
1955 浏览

c++ - 永远不会调用 Qt 子类化的 QStyledItemDelegate 绘制方法

更新:我的绘画方法不是 const

我有一个QTableView连接到QAbstractTableModel.

我最近创建了一个QStyledItemDelegate子类,它的paint方法会打印一条调试消息,然后它会调用父类paint,然后它会打印另一条调试消息。

我已经打过电话view->setItemDelegate,并检查了我视图中的项目委托是我给它的(只是为了确定)。

但是,我的程序只是以与以前相同的方式呈现事物,并且从不在paint. 它确实在委托的构造函数中打印了一条调试消息,所以我知道如果该函数被调用,它应该打印。

这是我的代码的精简版本,让我知道其中一个:

  1. 你能看出有什么问题吗?
  2. 我如何调试这样的 Qt 类?
  3. 我应该发布哪些其他相关代码来诊断这个问题?
  4. 我可以尝试一些常见的解决方案吗?

谢谢!

这是整个委托 .h 和 .cpp 文件(减去包含/命名空间)

所以调试输出告诉我构造函数被调用(但不是析构函数......)并且我实际上正在为视图设置相同的委托,就像我认为的那样。但是,其中的消息paint永远不会被打印出来。

0 投票
2 回答
1630 浏览

python - PyQt 模型/视图:编程更改的模型类型是什么?

我最近开始重写一个应用程序,我正在尝试将它移植到模型/视图以减少我在那里的 kludges 数量。

到目前为止,我能够成功地制作一个继承自QAbstractTableModel. 这个模型是这样的:

data是一个包含多个对象的列表。然后在 data() 方法中访问它们:

现在,如果我使用预定义的data元素,这很好。但实际上以data编程方式更改(当接收到某些信号时它会扩展)。我怎样才能让模型意识到这一点,以便我的视图也可以对这些变化做出反应?

我一直在阅读有关读写模型的文章,但它们也允许用户编辑和更改内容,而在我看来,我希望事情是不可编辑的:简而言之,需要“在幕后”更改模型只是,视图会适应这一点。

在这种情况下,最好的方法是什么?用 setData() 等实现读写模型,还是有更简单的解决方案?

0 投票
1 回答
723 浏览

opengl-es - OpenGL ES (WebGL) 中的相机和模型视图

我的 OpenGL 转换有点麻烦——我有一个设置gl_Positionprojection * view * model * vertex. 我有通过在空间中反转相机的模型矩阵来生成视图矩阵的代码,但是当我将相机正在查看的对象设置为在空间中旋转时,似乎相机正在旋转。

这可能是什么原因造成的?

0 投票
4 回答
456 浏览

database - 对在数据库设计中使用“display_order”字段有何批评?

在我公司的软件产品中,许多数据库表都使用了“display_order”字段。它是一个整数,控制页面上元素的显示顺序。

在我的内心深处,我觉得这是一种不好的做法。(或者至少,一个不太理想的设计选择)。但是,我无法向自己阐明为什么这是一种不好的做法。

到目前为止,我能想到的唯一原因是:

  • 它将视图混合到模型中。

  • 更改顺序是一项涉及许多不同行的潜在昂贵的数据库操作。

  • 在许多情况下,如果您知道元素的顺序,那么表格可能足够小,以至于表格一开始就是浪费。例如,在我们的“状态”表中,状态应该是一个简单的硬编码数组,而不是一个单独的“查找”表。

是否有其他人有任何好的论据来避免在数据库设计中使用“display_order”字段?

0 投票
1 回答
111 浏览

architecture - ModelView 到 ModelView 通信

拜托,您对以下场景有什么建议(就架构质量而言)最好的方法:

ModelViewA(父) - 需要从 ModelViewB 收集来显示数据 - 即使集合保持不变,也可以多次访问集合

ModelViewB (child) - 保存项目的集合。该集合在概念上属于 ModelViewB,主要在此(模型)视图中进行修改。但是,ModelViewA 也可以修改集合

我目前采用的方法是在 ModelViewB 中收集并在 ModelViewA 中复制。使用消息总线(MMVM Light 工具包),我让 ModelViews 相互通知更改。但是,这感觉很尴尬,因为我保留了重复的集合并对其进行了同步。我宁愿只将它放在一个地方并从 ModelViewA 和 B 访问它。我在想也许将一个 ModelView 注入另一个,但这会增加耦合并且通常感觉 MVVM 模式是错误的。我也可以只使用对两个模型视图的静态引用,因为我有静态定位器(也来自 MVVM Light 工具包)保存引用。或者也许有更好的解决方案?

谢谢,

0 投票
1 回答
554 浏览

qt - 如何使用 Qt 的 Model-View 编程

我试图在 QListView 中显示一些卡片,但我真的很难理解如何使用 Qt 的模型/视图模式,而且我找不到任何简单的例子。

基本上,我有两个课程:

  • 卡 - 我的“模型”,其中包含卡的名称、ID 等。

  • CardWidget - 可以加载和渲染卡片对象(显示卡片名称和其他信息)

那么如何使用 Card 和 CardWidget 将卡片列表显示到 ListView 中呢?我是否需要对我的类进行一些更改,或者 QListView 是否应该能够直接显示它们?

如果有人可以向我展示基本步骤或指出正确的方向,那将是完美的。