当前位置: 首页 > 知识库问答 >
问题:

EnableAlternateRowColour示例会有很大帮助

韶浩皛
2023-03-14

我有一个wx.ListCtrl界面,可以在以下位置找到:

http://wiki.wxpython.org/AnotherTutorial#wx.ListCtrl

但我无法使用其他行颜色,如图所示:

http://wxpython.org/Phoenix/docs/html/ListCtrl.html#ListCtrl.EnableAlternateRowColours

有人能给我一个简单的例子来说明如何使用它们吗,使用网站上的这个例子?

导入wx

wx.对话框):def init(自我,父,id,标题):wx。Dialog.init(自我,父,id,标题,大小=(600,500),样式=wx。DEFAULT_DIALOG_STYLE)

    hbox  = wx.BoxSizer(wx.HORIZONTAL)
    vbox1 = wx.BoxSizer(wx.VERTICAL)
    vbox2 = wx.BoxSizer(wx.VERTICAL)
    vbox3 = wx.GridSizer(2,2,0,0)
    vbox4 = wx.BoxSizer(wx.VERTICAL)
    pnl1 = wx.Panel(self, -1, style=wx.SIMPLE_BORDER)
    pnl2 = wx.Panel(self, -1, style=wx.SIMPLE_BORDER)
    self.lc = wx.ListCtrl(self, -1, style=wx.LC_REPORT)
    self.lc.InsertColumn(0, 'State')
    self.lc.InsertColumn(1, 'Capital')
    self.lc.SetColumnWidth(0, 140)
    self.lc.SetColumnWidth(1, 153)
    vbox1.Add(pnl1, 1, wx.EXPAND | wx.ALL, 3)
    vbox1.Add(pnl2, 1, wx.EXPAND | wx.ALL, 3)
    vbox2.Add(self.lc, 1, wx.EXPAND | wx.ALL, 3)
    self.tc1 = wx.TextCtrl(pnl1, -1)
    self.tc2 = wx.TextCtrl(pnl1, -1)
    vbox3.AddMany([ (wx.StaticText(pnl1, -1, 'State'),0, wx.ALIGN_CENTER),
                    (self.tc1, 0, wx.ALIGN_LEFT|wx.ALIGN_CENTER_VERTICAL),
                    (wx.StaticText(pnl1, -1, 'Capital'),0, wx.ALIGN_CENTER_HORIZONTAL),
                    (self.tc2,0)])
    pnl1.SetSizer(vbox3)
    vbox4.Add(wx.Button(pnl2, 10, 'Add'),   0, wx.ALIGN_CENTER| wx.TOP, 45)
    vbox4.Add(wx.Button(pnl2, 11, 'Remove'), 0, wx.ALIGN_CENTER|wx.TOP, 15)
    vbox4.Add(wx.Button(pnl2, 12, 'Clear'), 0, wx.ALIGN_CENTER| wx.TOP, 15)
    vbox4.Add(wx.Button(pnl2, 13, 'Close'), 0, wx.ALIGN_CENTER| wx.TOP, 15)
    pnl2.SetSizer(vbox4)
    self.Bind (wx.EVT_BUTTON, self.OnAdd, id=10)
    self.Bind (wx.EVT_BUTTON, self.OnRemove, id=11)
    self.Bind (wx.EVT_BUTTON, self.OnClear, id=12)
    self.Bind (wx.EVT_BUTTON, self.OnClose, id=13)
    hbox.Add(vbox1, 1, wx.EXPAND)
    hbox.Add(vbox2, 1, wx.EXPAND)
    self.SetSizer(hbox)

def OnAdd(self, event):
    if not self.tc1.GetValue() or not self.tc2.GetValue():
        return
    num_items = self.lc.GetItemCount()
    self.lc.InsertStringItem(num_items, self.tc1.GetValue())
    self.lc.SetStringItem(num_items, 1, self.tc2.GetValue())
    self.tc1.Clear()
    self.tc2.Clear()

def OnRemove(self, event):
    index = self.lc.GetFocusedItem()
    self.lc.DeleteItem(index)

def OnClose(self, event):
    self.Close()

def OnClear(self, event):
    self.lc.DeleteAllItems()

类MyApp(wx.App): def OnInit(自我): dia=MyDialog(无,-1,'capitals.py')dia.ShowModal()dia.毁灭()返回True

App=MyApp(0)app.主循环

共有1个答案

阚正真
2023-03-14

正如Yoriz所指出的,这是一种相当新的方法。如果你想用老方法做这件事,我在博客上展示了如何做:http://www.blog.pythonlibrary.org/2011/01/04/wxpython-wx-listctrl-tips-and-tricks/

基本上,我只是在添加行时使用setItemBackgroundColor()和alternate。您还可以使用ObjectListView,它是ListCtrl的包装器,内置了交替的行颜色。如果您决定这样做,本文可能会对您有所帮助:http://www.blog.pythonlibrary.org/2009/12/23/wxpython-using-objectlistview-instead-of-a-listctrl/

 类似资料:
  • Apache Commons CLI提供HelpFormatter类来打印与命令行参数相关的帮助。 查看示例。 例子 (Example) CLITester.java import java.io.PrintWriter; import org.apache.commons.cli.HelpFormatter; import org.apache.commons.cli.Options; impo

  • 学习讲究的是学以致用和融会贯通。至此我们已经分别介绍了NodeJS的很多知识点,本章作为最后一章,将完整地介绍一个使用NodeJS开发Web服务器的示例。 需求 我们要开发的是一个简单的静态文件合并服务器,该服务器需要支持类似以下格式的JS或CSS文件合并请求。 http://assets.example.com/foo/??bar.js,baz.js 在以上URL中,??是一个分隔符,之前是需要

  • 🕒岗位 无线通信算法岗 🤔笔试感受 除了c语言,基本上都是围绕着通信的知识出的题,终于有一家尊重通信人的公司了! 题目不是很难,但是挺考验知识广度的,如果记性不太好还真做不出来 求给个面试机会🙏

  • 问题内容: 我试图在python中打印一些大的东西,而不是得到整个结果,我得到了中间带有“ …”的部分。任何想法如何获得全部? 例如 代码是: 我已经将其转换为字符串,并且在写入文件时得到了相同的结果 问题答案: 对于,请致电: 将阈值提高到无穷大。有关更多详细信息,请参见文档。 对于Python 3,请改用:

  • http://172.16.7.203/sfAppServices/SF_UserLogin.svc/rest/login/ 在这个用户名和密码是它的一部分,我需要发布用户从edittext输入的用户名和密码,并得到如下json响应 如何使用改装获得json。我已使用asynctask成功完成此操作。但感觉很难通过改造来实现。我的问题是 哪个是基本网址? 在应该在post方法中公开的接口中。 如何

  • 如果想将小台灯、小喇叭或其他用电器接入网络,对它们进行简单的远程监控和操作,OBLOQ 一定是你的首选。OBLOQ配置十分简单,无需复杂的编程,15分钟就足够让这些小物件在互联网上拥有生命。