前些天,在RHEL6环境下安装了思科交换机\路由器模拟器GNS3,但是在打开GNS3后,当拖动模拟的设备到拓扑的时候,会弹出以下错误:
File "/usr/local/GNS3-0.7.4/src/GNS3/Scene.py", line 777, in dropEvent node = object(renderer_normal, renderer_select)
File "/usr/local/GNS3-0.7.4/src/GNS3/Node/IOSRouter2691.py", line 31, in __init__IOSRouter.__init__(self, renderer_normal, renderer_select)
File "/usr/local/GNS3-0.7.4/src/GNS3/Node/IOSRouter.py", line 59, in __init__AbstractNode.__init__(self, renderer_normal, renderer_select)
File "/usr/local/GNS3-0.7.4/src/GNS3/Node/AbstractNode.py", line 62, in __init__flags = flags | self.ItemSendsGeometryChanges
AttributeError: 'IOSRouter2691' object has no attribute 'ItemSendsGeometryChanges'
解决这个问题的方法比较简单,只需要到安装GNS3的相关目录下,找到AbstractNode.py文件,在大概60行的地方找到:
# scene settings
flags = self.ItemIsMovable | self.ItemIsSelectable | self.ItemIsFocusable
# necessary to receive itemChange() notifications with Qt >= 4.6
if QtCore.QT_VERSION >= 0x040600:
flags = flags | self.ItemSendsGeometryChanges
self.setFlags(flags)
self.setAcceptsHoverEvents(True)
self.setSharedRenderer(self.__render_normal)
修改为:
# scene settings
flags = self.ItemIsMovable | self.ItemIsSelectable | self.ItemIsFocusable
self.setFlags(flags)
self.setAcceptsHoverEvents(True)
self.setSharedRenderer(self.__render_normal)
更改完后报错即没有再出现了。
文章评论
不错,感谢分享。
分析得很深刻.不错
学习了~~