免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 10136 | 回复: 3
打印 上一主题 下一主题

wxPython中grid控件的滚动条怎么显示 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-02-22 00:50 |只看该作者 |倒序浏览
      下面的代码主要来自wxPython in action中的示例代码,由于自己程序设计的需要,稍作了修改(2行红色部分),即在中class TestFrame加一个wx.Panel控件,如此一来,程序就没有滚动条了?怎么办?我需要有滚动条!
       wxPython in action 中的原始的示例是有滚动条的。


#coding=gbk
import wx
import wx.grid

class TestTable(wx.grid.PyGridTableBase):
    def __init__(self):
        wx.grid.PyGridTableBase.__init__(self)
        self.data = { (1,1) : "Here",
                      (2,2) : "is",
                      (3,3) : "some",
                      (4,4) : "data数据",
                        (25,45):"oatt",
                      }
        
        self.odd=wx.grid.GridCellAttr()
        self.odd.SetBackgroundColour("sky blue")
        self.odd.SetFont(wx.Font(10, wx.SWISS, wx.NORMAL, wx.BOLD))

        self.even=wx.grid.GridCellAttr()
        self.even.SetBackgroundColour("sea green")
        self.even.SetFont(wx.Font(30, wx.SWISS, wx.NORMAL, wx.BOLD))


    # these five are the required methods
    def GetNumberRows(self):
        return 50

    def GetNumberCols(self):
        return 50

    def IsEmptyCell(self, row, col):
        return self.data.get((row, col)) is not None

    def GetValue(self, row, col):
        value = self.data.get((row, col))
        if value is not None:
            return value
        else:
            return ''

    def SetValue(self, row, col, value):
        self.data[(row,col)] = value


    # the table can also provide the attribute for each cell
    def GetAttr(self, row, col, kind):
        attr = [self.even, self.odd][row % 2]
        attr.IncRef()
        return attr



class TestFrame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, title="Grid Table",
                          size=(640,480))
                          
        panel=wx.Panel(self,-1)
        grid = wx.grid.Grid(panel,id=-1)


        table = TestTable()
        grid.SetTable(table, True)
        grid.AutoSize()
        

app = wx.PySimpleApp()
frame = TestFrame()
frame.Show()
app.MainLoop()

论坛徽章:
0
2 [报告]
发表于 2013-02-22 00:53 |只看该作者
panel控件和grid.AutoSize()方法必须保留的前提下,如何修改使程序出现滚动条?

论坛徽章:
0
3 [报告]
发表于 2013-11-12 14:24 |只看该作者
请问一下,这个问题现在解决了么?
同问

论坛徽章:
0
4 [报告]
发表于 2014-07-10 15:03 |只看该作者
真心赞的控件知识分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP