【问题标题】:A lot of GUI controls indicating different states许多指示不同状态的 GUI 控件
【发布时间】:2012-05-30 11:48:19
【问题描述】:

这个问题非常开放,可能这个问题的答案将取决于系统,但平均来说,哪种方式是显示不同状态的大型矩阵(比如 128 个元素)的最佳方式?

  • 为每个单元格创建一个控件,让 GUI 库处理所有事件和内容(在 Windows 128 HWND:s 中)
  • 使用较低级别的图形基元绘制整个矩阵

内存/CPU 性能是否因选择而异?我的应用程序中每个单元格的状态数为 4,因此它们每个需要 2 位来表示它们的状态。每个单元格将由与状态相关的图像表示。

【问题讨论】:

  • 这不是编程问题,而是用户体验问题。您可能想在 ux.stackexchange.com 上问这个问题。
  • 你认为用户关心我如何实现相同的功能吗?
  • 显然我误解了这个问题。我很抱歉。
  • 如果您已经想到了视觉结果(或者可能已经实现),您应该将其添加到问题中。就目前而言,您的问题表明您正在寻找“显示大型矩阵的最佳方式”,这可能是实施方面或 UX 方面的,但您并没有真正说明这一点。另外,“你认为用户关心我如何实现相同的功能吗?”听起来有点不友好。请记住,您是在向完全陌生的人寻求免费帮助,因此您应该尽可能友好,尤其是当有人提出建设性建议时。
  • 问题是关于 CPU/内存。 “内存/CPU 性能是否因选择而异?”

标签: arrays performance user-interface controls


【解决方案1】:

当然有区别。我将尝试说明这一点以及它所基于的假设。

  1. 控件的成本 = 控件的内存 + 控件的事件处理程序 + 控件的引用 + 事件管道中的一个额外控件

  2. 每个单元映射的“严格”控制的好处。概念上干净、简单的代码,最容易思考。

  3. 紧密映射的成本:将每个控件的成本乘以单元数。

我即将提出的替代方案假设紧密映射和松散“单环”映射之间的成本差异很重要。

alternative :只需添加一个控件,该控件仅在您呈现的整个矩阵视图的范围内注册事件,有一段代码来确定指针位置和对应的单元格,然后根据那里的用户交互只更新那个单元格。

这样做的好处是您只获得了一个额外控制的边际成本,但获得了处理整个矩阵的交互的好处。边际收益或这种控制比单一的严格控制要高得多。 Aldo,实现成本很小,因为它是一种常见的模式,而且难度不大。

祝你好运!

【讨论】:

    猜你喜欢
    • 2019-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多