特别是在 wxHaskell 中,但总的来说,希望能够在两个并排的列表中的项目之间画线,以表明项目之间存在关系。类似于下面的样机。

特别是在 wxHaskell 中,但总的来说,希望能够在两个并排的列表中的项目之间画线,以表明项目之间存在关系。类似于下面的样机。

也许您的设置有一些我不明白的地方,但这似乎非常简单。
假设您想在输入一和输出三之间画一条线。
您需要在作为两个列表的父窗口的坐标系中的四个坐标。让我们称他们为 xi, yi, xo, yo
xi 和 xo 是常数
yi 和 yo 仅取决于列表中一行的高度和项目的索引号。
现在从父窗口创建一个 wxClientDC
并在华盛顿划清界限。
parentWindowDC.DrawLine(xi,yi,xo,yo);
我注意到您在列表窗口的顶部显示了箭头。以上将把他们拉到后面。要将它们绘制在顶部,您将不得不做一些计算几何,然后您可以计算线 (xi,yi,xo,yo) 与两个列表框的边缘相交的点。然后你画三条线,使用相同的画笔,
wxWidgets 中没有相应的类,但有一些可能的解决方法: