저는 현재 proteomic coverage 분석 도구를 작성하고 있습니다 (만약 당신이 그 단백질이 무엇인지 모른다면, something like this입니다.) 기본적으로 나는 많은 양의 무작위적인 텍스트를 제시해야하고, 다양한 부분을 강조해야합니다. (wx.RichTextCtrls가 강조 표시된 텍스트의 한 부분을 올바르게 고정하지 못하기 때문에) 조직 된 방식으로 텍스트를 표시하기 위해 셀 개요를 비활성화 한 상태로 wx.Grid를 사용합니다. 그러나 wx.Grids (및 wx.XLSGrids , 등등.) 전체 셀을 강조 표시하는 옵션이 있습니다. 셀 내의 특정 텍스트를 강조 표시하는 방법을 찾을 수 없습니다.이 방법을 사용할 수 있습니까?wx.Grid의 셀에있는 개별 문자를 어떻게 강조 할 수 있습니까?
0
A
답변
0
아마도 가장 잘 알고있는 점은 그리드 위젯 wxPython 데모에서 사용자 지정 렌더러. 원본을 보면 DC를 사용하여 다른 색으로 텍스트를 그리는 것처럼 보입니다. 님의 스 니펫 :
class MyCustomRenderer(gridlib.PyGridCellRenderer):
def __init__(self):
gridlib.PyGridCellRenderer.__init__(self)
def Draw(self, grid, attr, dc, rect, row, col, isSelected):
dc.SetBackgroundMode(wx.SOLID)
dc.SetBrush(wx.Brush(wx.BLACK, wx.SOLID))
dc.SetPen(wx.TRANSPARENT_PEN)
dc.DrawRectangleRect(rect)
dc.SetBackgroundMode(wx.TRANSPARENT)
dc.SetFont(attr.GetFont())
text = grid.GetCellValue(row, col)
colors = ["RED", "WHITE", "SKY BLUE"]
x = rect.x + 1
y = rect.y + 1
for ch in text:
dc.SetTextForeground(random.choice(colors))
dc.DrawText(ch, x, y)
w, h = dc.GetTextExtent(ch)
x = x + w
if x > rect.right - 5:
break
시작하시는 것이 좋겠군요. 그것이 당신을 위해 작동하지 않는다면, 당신은 자신의 렌더러를 찾아야 할 것입니다.
더 풍부한 텍스트 포맷을위한 ** 다른 ** 텍스트 컨트롤 (wx.StyledTextCtrl, wxPython 데모에서 예제를 찾으십시오)을 보셨습니까? 많은 텍스트 편집기에서 사용되는 Scintilla 텍스트 구성 요소를 기반으로하므로 필요한 작업을 수행 할 수 있어야합니다. – nepix32