【问题标题】:<table>-like UI element for wxHaskell/wxWidgets<table> 类似 wxHaskell/wxWidgets 的 UI 元素
【发布时间】:2016-04-22 05:06:20
【问题描述】:

我正在用 Haskell(和 Ur/Web,但那是另一回事)编写 GUI,并且有几个开发分支使用不同的库和我同时工作的方法。在尝试使用 WX 图形后端(wxHaskell、reactive-banana)将我的一些代码从浏览器支持的带有 HTML 元素的 UI 库(准确地说是threepenny-gui)迁移到本机 GUI 小程序时,我遇到了一些麻烦了解如何将我基于构造 &lt;table&gt; 元素的一些代码迁移到等效的 wxWidgets 构造。在我看来,我自己并没有简单的方法来实现这样的东西,也没有原生的等价物。我正在寻找实现建议、指向现有实现的指针、合适的替代方案等等。如果需要,我可以提供我正在寻找的设计的更深入细节。

html表格仅用于对齐和显示数据,其中每一行中的一个单元格是一个反应式控件,并且在任何给定时间显示的行数也可以反应式变化。

【问题讨论】:

    标签: user-interface haskell html-table wxwidgets wxhaskell


    【解决方案1】:

    HTML 表格的单元格中几乎可以包含任何内容,因此它过于丰富,无法由任何本机控件表示。在不知道表中到底有什么的情况下很难提出建议,但不同的可能性是:

    • wxHtmlWindow:只要足够简单(基本上是 HTML4),它就可以用来重用您的 HTML,并且您可以在需要时将本机控件嵌入其中。
    • wxGrid:这是最灵活的小部件,但它不是原生的。
    • wxDataViewCtrl:这是 GTK 和 OS X 下的本机控制(但不是 MSW,您需要使用 wxListCtrl 实现 100% 本机方法),但与上述任何一种解决方案相比,它都非常有限。

    【讨论】:

    • 在我的小部件库构建中,我尽量保持一般性,但除了我提到的反应式小部件之外,我想到的特定应用程序将只包含文本和小图标。该小部件又是一个提升按钮,可在单击时对随时间变化的值进行快照。
    • 这看起来可以使用 wxDVC,但您必须为小部件编写自定义渲染器。
    • 我习惯于为我的小部件编写自定义渲染器。您是否有任何示例/指南可以帮助我实现 DVC 表?我对图书馆不太熟悉。
    • 照例看sample
    • 这很有趣,但对我来说并不是特别有用(尽管我可能遗漏了一些东西),因为 wxHaskell 似乎没有实现这一点。为此,我可能会尝试编写一个自定义小部件。
    猜你喜欢
    • 2011-01-07
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多