单击按钮时PYQT5图形区域未更新

时间:2019-05-07 17:10:22

标签: python python-3.x pyqt pyqt5 qgraphicsview

我正在图形场景中绘制一些正方形和一个圆,我想将这些正方形与多条线连接起来,这些线将从圆开始并像树一样分支。当用户单击左下角的按钮时,线条应在场景中绘制。一旦在场景中绘制了线条,用户就应该能够像放大圆形和正方形一样放大并选择线条。

路径由称为or text[pt] == "\n"的函数确定。该函数将获取这些点,并建立一个(0, 16)结构,以概述应该如何连接这些点。我知道这可以做得更好,我希望可以做得更好,但是我不想在本文中问太多问题。例如,输出应类似于

group

这意味着点graph连接到点{0: [1, 5, 6], 1: [7], 7: [12], 5: [4]} 01,点5连接到点6,依此类推上。

然后,我有一个名为1的{​​{1}},应该设置所有属性,以便在选择颜色时更改颜色,以及我希望用户以后看到的其他任何颜色。 / p>

当用户单击按钮时,它将在我的7类中运行一个名为class的函数,这是我希望它绘制线条的地方。我可以告诉该功能正在运行,并且没有任何错误,但是窗口中没有任何显示。

我尝试添加PathLineViewerdrawConnectingLines,但似乎没有什么不同。另外,如果我尝试在程序的负载上画线,则不会画任何东西。甚至都没有。

任何帮助将不胜感激。

QApplication.processEvents()

1 个答案:

答案 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