我正在图形场景中绘制一些正方形和一个圆,我想将这些正方形与多条线连接起来,这些线将从圆开始并像树一样分支。当用户单击左下角的按钮时,线条应在场景中绘制。一旦在场景中绘制了线条,用户就应该能够像放大圆形和正方形一样放大并选择线条。
路径由称为or text[pt] == "\n"
的函数确定。该函数将获取这些点,并建立一个(0, 16)
结构,以概述应该如何连接这些点。我知道这可以做得更好,我希望可以做得更好,但是我不想在本文中问太多问题。例如,输出应类似于
group
这意味着点graph
连接到点{0: [1, 5, 6], 1: [7], 7: [12], 5: [4]}
,0
和1
,点5
连接到点6
,依此类推上。
然后,我有一个名为1
的{{1}},应该设置所有属性,以便在选择颜色时更改颜色,以及我希望用户以后看到的其他任何颜色。 / p>
当用户单击按钮时,它将在我的7
类中运行一个名为class
的函数,这是我希望它绘制线条的地方。我可以告诉该功能正在运行,并且没有任何错误,但是窗口中没有任何显示。
我尝试添加PathLine
,Viewer
和drawConnectingLines
,但似乎没有什么不同。另外,如果我尝试在程序的负载上画线,则不会画任何东西。甚至都没有。
任何帮助将不胜感激。
QApplication.processEvents()
答案 0 :(得分:1)
drawPath(x1,y1,x2,y2)
在scale*(x1, y1)
的项目坐标中有效地从scale*(x2, y2)
到scale = 250
画了一条线。然后在PathLine.__init__
中将这条线移动到(x1, y1)
(在场景坐标中),并将其缩放1.5倍,这意味着在场景坐标中,这些线从(1.5*scale+1)*(x1,y1)
到{{1} }。
但是,由1.5*scale*(x2,y2)+(x1,y1)
和create_circle
生成的圆和正方形在项目坐标中以create_square
为中心,并在(0,0)
中移至(x1,y1)
。
因此,要使线条与圆形和正方形匹配,应在Point.__init__
中将比例设置为1.0,将线条的位置保持在(0,0),在{{ 1}}。另外,您需要使用和设置颜色的初始行才能看到它们,即
drawPath