module 'PySimpleGUI' has no attribute 'Row'
时间: 2023-06-22 14:20:49 浏览: 112
如果你使用的是 PySimpleGUI 4.0 或更高版本,`Row` 元素已被替换为 `HORIZONTAL_ELEMENT`。因此,为了将两个 `layout` 并排排列,你可以使用以下代码:
```python
import PySimpleGUI as sg
layout1 = [[sg.Text('Layout 1')]]
layout2 = [[sg.Text('Layout 2')]]
layout = [[sg.HSeparator()],
[sg.Column(layout1, element_justification='c'), sg.Column(layout2, element_justification='c')],
[sg.HSeparator()]]
window = sg.Window('Example', layout)
while True:
event, values = window.read()
if event == sg.WIN_CLOSED:
break
window.close()
```
在这个例子中,我们使用 `Column` 元素将 `layout1` 和 `layout2` 包装在一起,并使用 `element_justification` 参数将它们居中对齐。然后,我们在它们上面和下面放置了两个水平分隔符,以分隔它们和其他内容。
你可以根据需要调整 `layout1` 和 `layout2` 的大小和内容。
相关问题
AttributeError: 'module' object has no attribute 'DicWriter'
AttributeError: 'module' object has no attribute 'DictWriter' 这种错误通常是由于你在导入某个模块的时候,对模块名拼写有误,或者使用的函数或类不存在于该模块的默认属性中。
在Python中,`csv` 模块并没有 `DictWriter` 类,而是有两个相关的类:`csv.DictReader` 和 `csv.writer`,如果你想要写入字典到CSV文件,应该使用 `csv.writer`。纠正后的例子如下:
```python
import csv
def remove_rows(file_name, value, output_file):
with open(file_name, 'rb') as csvfile, open(output_file, 'wb') as newfile:
reader = csv.reader(csvfile)
fieldnames = next(reader) # 获取表头
writer = csv.writer(newfile)
for row in reader:
if row[fieldnames.index('column_name')] != value:
writer.writerow(row)
remove_rows('input.csv', 'value_to_remove', 'output.csv')
```
在这个例子中,我们使用了 `writerow` 方法直接写入行,而不是 `DictWriter`。
'module' object has no attribute 'GeometryIntersection'
您遇到的错误是因为ArcPy中没有名为`GeometryIntersection`的函数。我为您改写了代码,使用`Intersect`函数来检查起始点和终点是否与其他要素相交。请尝试使用以下代码:
```python
import arcpy
# 设置工作环境和输入要素类
arcpy.env.workspace = r"C:\path\to\your\geodatabase.gdb"
input_features = "your_line_features"
# 创建空的悬挂点图层
hang_points = arcpy.CreateFeatureclass_management(arcpy.env.workspace, "hang_points", "POINT")
# 添加字段
arcpy.AddField_management(hang_points, "line_oid", "LONG")
# 遍历线状要素,检查悬挂点并添加到悬挂点图层
with arcpy.da.SearchCursor(input_features, ["OID@", "SHAPE@"]) as cursor:
with arcpy.da.InsertCursor(hang_points, ["SHAPE@", "line_oid"]) as insert_cursor:
for row in cursor:
line_oid = row[0]
line_geometry = row[1]
# 检查起始点是否为悬挂点
start_point_on_line = line_geometry.firstPoint
start_point_on_line_geometry = arcpy.PointGeometry(start_point_on_line, line_geometry.spatialReference)
intersecting_features = arcpy.Intersect_analysis([start_point_on_line_geometry, input_features], arcpy.Geometry())
if len(intersecting_features) == 1: # 如果只有起始点自身相交,则添加到悬挂点图层
insert_cursor.insertRow((start_point_on_line, line_oid))
# 检查终点是否为悬挂点
end_point_on_line = line_geometry.lastPoint
end_point_on_line_geometry = arcpy.PointGeometry(end_point_on_line, line_geometry.spatialReference)
intersecting_features = arcpy.Intersect_analysis([end_point_on_line_geometry, input_features], arcpy.Geometry())
if len(intersecting_features) == 1: # 如果只有终点自身相交,则添加到悬挂点图层
insert_cursor.insertRow((end_point_on_line, line_oid))
# 输出悬挂点图层
output_path = r"C:\path\to\output.gdb"
arcpy.CopyFeatures_management(hang_points, output_path + "\\hang_points")
```
请确保将代码中的路径替换为您自己数据的实际路径。此代码将创建一个名为`hang_points`的新要素类,并将悬挂点添加到其中,然后将其复制到指定的输出路径。悬挂点被定义为线状要素的起始点或终点,不与其他要素相交。
希望这次能帮到您!如果您有任何其他问题,请随时提问。