【发布时间】:2011-01-19 09:24:55
【问题描述】:
我有一个 wxListCtrl(实际上是一个ObjectListView),用 LC_REPORT 设置了两列。
是否可以在第一列文本到达列尾时自动换行?
【问题讨论】:
标签: python wxpython wxwidgets word-wrap objectlistview
我有一个 wxListCtrl(实际上是一个ObjectListView),用 LC_REPORT 设置了两列。
是否可以在第一列文本到达列尾时自动换行?
【问题讨论】:
标签: python wxpython wxwidgets word-wrap objectlistview
使用 ObjectListView 是不可能的(请参阅他们的 FAQ),因为 ListCtrl 不支持多行条目。
但是,可以使用 UltimateListCtrl
import wx
from wx.lib.wordwrap import wordwrap
import wx.lib.agw.ultimatelistctrl as ULC
class Frame(wx.Frame):
def __init__(self, *args, **kw):
wx.Frame.__init__(self, *args, **kw)
self.list = ULC.UltimateListCtrl(self, agwStyle=ULC.ULC_REPORT|ULC.ULC_HAS_VARIABLE_ROW_HEIGHT)
items = ['A', 'b', 'a really really long line that if would be nice if it could word-wrap']
colWidth = 100
self.list.InsertColumn(0, "AA", width=colWidth)
for item in items:
item = wordwrap(item, colWidth, wx.ClientDC(self))
self.list.InsertStringItem(0, item)
app = wx.App(False)
frm = Frame(None, title="ULC wordwrap test")
frm.Show()
app.MainLoop()
【讨论】:
wxListCtrl 的功能相当有限。为了做比基本更多的事情,您应该考虑“升级”到具有丰富功能的 wxGrid。
【讨论】: