alw*_*btc 4 python grid wxpython header
当我用wxpython创建一个网格时,我得到顶部列标题为"A","B","C"......
import wx
import wx.grid as gridlib
########################################################################
class MyForm(wx.Frame):
""""""
#----------------------------------------------------------------------
def __init__(self):
"""Constructor"""
wx.Frame.__init__(self, parent=None, title="A Simple Grid")
panel = wx.Panel(self)
myGrid = gridlib.Grid(panel)
myGrid.CreateGrid(12, 8)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(myGrid, 1, wx.EXPAND)
panel.SetSizer(sizer)
if __name__ == "__main__":
app = wx.PySimpleApp()
frame = MyForm().Show()
app.MainLoop()
Run Code Online (Sandbox Code Playgroud)

但是我想设置自定义列标题:

这该怎么做?
mic*_*ico 11
WxPython wiki告诉我们,每一行和每列如何都有自己的可设置标签(标题),它可以包含任何文本以及它自己的其他布局.
列标题由命令设置
SetColLabelValue(int col, const wxString& value)
Run Code Online (Sandbox Code Playgroud)
将列号和所需的标签值作为参数.
本教程进一步说明,您案例中的完整示例代码将如下所示:
import wx
import wx.grid as gridlib
########################################################################
class MyForm(wx.Frame):
""""""
#----------------------------------------------------------------------
def __init__(self):
"""Constructor"""
wx.Frame.__init__(self, parent=None, title="A Simple Grid")
panel = wx.Panel(self)
myGrid = gridlib.Grid(panel)
myGrid.CreateGrid(12, 8)
myGrid.SetColLabelValue(0, "ID")
myGrid.SetColLabelValue(1, "Name")
myGrid.SetColLabelValue(2, "Lastname")
myGrid.SetColLabelValue(3, "01-Jan-13")
# etc. etc.
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(myGrid, 1, wx.EXPAND)
panel.SetSizer(sizer)
if __name__ == "__main__":
app = wx.PySimpleApp()
frame = MyForm().Show()
app.MainLoop()
Run Code Online (Sandbox Code Playgroud)
当然,如果该日期是在飞行中初始化的,那么你必须从一个datetime对象中获取它,例如从你的代码中添加这些行(取自这篇文章):
# Add to imports
import datetime
# fetch date and you can give this, not hard coded string value.
datetime.datetime.today()
Run Code Online (Sandbox Code Playgroud)
要在您的标题上重复多年/次,请将以下内容视为有用:
from dateutil import rrule
from datetime import datetime, timedelta
now = datetime.now()
tenYearsLater = now + timedelta(years=10)
for dt in rrule.rrule(rrule.DAILY, dtstart=now, until=tenYearsLater):
print dt
Run Code Online (Sandbox Code Playgroud)
此处的代码源,而不是打印,相应地设置标签.此示例打印两个时间实例之间的每个日期.你需要dateutil在你的项目中.
| 归档时间: |
|
| 查看次数: |
4608 次 |
| 最近记录: |