我尝试在wxPython(4.0.6)中将列添加到ListCtrl时出错

时间:2019-05-26 01:28:19

标签: python wxpython

我正在尝试将列添加到LisCtrl中,但是我不能

我试图按照文档进行操作,但是我不知道我在做什么错

文档说:InsertColumn(自身,列,标题,格式= LIST_FORMAT_LEFT,宽度= LIST_AUTOSIZE)

https://docs.wxpython.org/wx.ListCtrl.html#wx.ListCtrl.InsertColumn

import wx

class View1(wx.Frame): def init(self,*args,**kw): super(View1, self).init(*args,**kw)

panel = wx.Panel(self, pos=(0,0), size=(800,700)) #TITULO titulo = wx.StaticText(panel,label="AGENDA DE CONTACTOS",pos=(130,1)) #Creamos Sizer y le agregamos el titulo sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(titulo,0,wx.ALIGN_CENTER,0) panel.SetSizer(sizer) #Texto1 X,Y label1 = wx.StaticText(panel,label="Nombre",pos=(70,50)) field1 = wx.TextCtrl(panel,pos=(200,50), size=(150,20)) #Texto2 X,Y label2 = wx.StaticText(panel,label="Apellido Paterno",pos=(70,90)) field2 = wx.TextCtrl(panel,pos=(200,90), size=(150,20)) #Texto3 X,Y label3 = wx.StaticText(panel,label="Apellido Materno",pos=(70,130)) field3 = wx.TextCtrl(panel,pos=(200,130), size=(150,20)) #Texto4 X,Y label4 = wx.StaticText(panel,label="Teléfono ",pos=(70,170)) field4 = wx.TextCtrl(panel,pos=(200,170), size=(150,20)) #Texto5 X,Y label5 = wx.StaticText(panel,label="Correo",pos=(70,210)) field5 = wx.TextCtrl(panel,pos=(200,210), size=(150,20)) #Texto6 X,Y label6 = wx.StaticText(panel,label="Teléfono",pos=(450,50)) field6 = wx.TextCtrl(panel,pos=(550,50), size=(150,21)) #Boton Agregar botonAgregar = wx.Button(panel,label="Agregar",pos=(215,245),size=(120,22)) #Boton eliminar botonEliminar = wx.Button(panel,label="Eliminar",pos=(565,90),size=(120,22)) #Creamos el ListCtrl para desplegar la información tabla = wx.ListCtrl(panel,pos=(25,350),size=(750,250), style=wx.LC_LIST) tabla.InsertColumn (self,0, 'NOMBRE', format=wx.LIST_FORMAT_LEFT, width=wx.LIST_AUTOSIZE)

终端中的结果是:TypeError:ListCtrl.InsertColumn():参数与任何重载调用都不匹配:   重载1:参数1具有意外的类型'View1'   重载2:参数1具有意外的类型'View1'

我尝试删除保留为tabla.InsertColumn(0,'NOMBRE',format = wx.LIST_FORMAT_LEFT,width = wx.LIST_AUTOSIZE)的self参数,但是出现了其他错误:  wx._core.wxAssertionError:C ++断言“ InReportView()”在DoInsertColumn()中的/home/vagrant/wxPython-4.0.6/ext/wxWidgets/src/generic/listctrl.cpp(5196)处失败:无法添加列在非报告模式下

1 个答案:

答案 0 :(得分:0)

正如Attila Toth所说,删除self参数。自我会自动传递给python中的方法。在这种情况下,selfwx.ListCtrl实例,但是随后您将View1实例作为列号参数传递。如果您仍然对self参数here is a pretty good explanation of it

感到困惑

已更新以解决新问题

第二个错误是不言自明的。使用样式标志ListCtrl而不是wx.LC_REPORT

创建wx.LC_LIST