有没有办法在Tkinter中绘制非画布线?

时间:2016-08-11 13:58:34

标签: python canvas tkinter tkinter-canvas custom-widgets

嗨!

我一直在寻找StackExchange和其他一些论坛来回答我的问题,但我找不到任何相关内容,所以我在这里,发布我的问题。

我要做的是绘制与其他Tkinter小部件位于同一层的线条。我目前正在编写一个界面,其中某些小部件需要在视觉上相互连接(NodeBox样式或Quartz Composer样式)。
Shows the connectors (noodles) present in Quartz Composer. (I'm not necessarily looking for curved lines, straight is more than enough.)

问题是它使用canvas小部件太复杂了(我将使用很多小部件,所以我认为将它们全部嵌入到画布中并不是一个真正的选项)。我正在寻找类似于分隔符小部件但允许对角线并由坐标定义的东西。我正在考虑创建一个自定义小部件来执行此操作,但我不知道从哪里开始。另一种解决方案可能是在非画布小部件上方放置透明画布,但这会使鼠标单击事件复杂化。我不知道哪种选择最好。

关于如何通过画布小部件完成绘制线的任何想法? (或者我如何创建一个自定义小部件来执行此操作?)

1 个答案:

答案 0 :(得分:0)

绘图线的唯一合理选择是画布。如果没有画布,您可以使用分隔符和place来模拟水平线或垂直线,但是您不能使用对角线。