Перенос слов в ListCtrl (или ObjectListView) - PullRequest
1 голос
/ 19 января 2011

У меня есть wxListCtrl (на самом деле это ObjectListView ), установленный с LC_REPORT с двумя столбцами.

Можно ли переносить по словам первый столбец текста, когда он достигает концаколонна?

Ответы [ 2 ]

2 голосов
/ 01 февраля 2011

Это невозможно с 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()
0 голосов
/ 19 января 2011

wxListCtrl довольно ограничен в своих возможностях. Чтобы сделать что-то большее, чем базовое, вы должны рассмотреть возможность «обновления» до wxGrid, который обладает множеством функций.

...