求教wxpython+wxFormBuilder的wxlistctrl使用的问题

求教wxpython+wxFormBuilder的wxlistctrl使用的问题,第1张

wxDirPickerCtrl的evt处理函数中,给wxListCtrl控御吵件发一个事件消息,在wxListCtrl的对应事件处理函数中去响应,然后添加选择的目录路径到list中去,看起来才是结构比较合理的。所以压根没有想到这么去做。

我刚才试了试感觉也没有显示出来,部分处理颤洞贴出来,请指点一下。

wxFormBuilder生成的UI代码,部分节选:

class FsFrameBase ( wx.Frame ):

def __init__( self, parent ):

。。。 。。。

self.m_listCtrl_DirList = wx.ListCtrl( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LC_NO_HEADER|wx.LC_REPORT )

。。。 。。。

self.m_dirPicker_DirChoise = wx.DirPickerCtrl( self, wx.ID_ANY, wx.EmptyString, u"Select a folder"镇洞侍, wx.DefaultPosition, wx.DefaultSize, wx.DIRP_DIR_MUST_EXIST )

。。。 。。。

# Connect Events

self.m_dirPicker_DirChoise.Bind( wx.EVT_DIRPICKER_CHANGED, self.OnDirSelectButton )

。。。。。。

# Virtual event handlers, overide them in your derived class

。。。。。。

def OnDirSelectButton( self, event ):

event.Skip()

。。。。。。

自己实现的frame代码,部分节选:

class FsFrame(fs_ui.FsFrameBase):

。。。 。。。

def DrawDirList(self):

for idx, val in g_FsDirDb.GetData():

DbgPrint('==================') # 打印我从数据库中的已添加目录信息

DbgPrint('DrawDirList dbg:')

DbgPrint('idx[%d], val[%s]' % (idx, val))

DbgPrint('==================')

rowidx = self.m_listCtrl_DirList.InsertStringItem(sys.maxint, val)

DbgPrint('Insert result: %d' % rowidx) # 打印添加结果动作

。。。 。。。

def OnDirSelectButton(self, evt):

g_FsDirDb.AddDir(evt.GetEventObject().GetPath())

DbgPrint('------------------') # 打印browser添加目录后,数据库中的目录信息dump

DbgPrint('Debuging: ')

g_FsDirDb.Debug()

DbgPrint('------------------')

self.DrawDirList()# 直接调用封装的listctrl.insertItem函数

1、要设置组件的位置、大小,需要将父窗口的布局设为null

2、可以用setBounds(x,y,width,height),其中衡伍x,y为组件左上角顶点相对于父窗口的X,Y坐旦偿测锻爻蹬激敏诧拳超哗标;width、height为组件的宽和高

3、想要拖动,可以明拦枝安装一个windowsbuilder editor插件


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12301567.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存