wxPython, tree Control text cutoff
jean-michel bain-cornu
jmbc at nospam.fr
Wed Jun 14 16:38:31 EDT 2006
Kiran a écrit :
> Hello all,
> I am using a tree to display stuff, and it is constantly updated, but
> what I have noticed is in the lowest level, there is clearly noticable
> cutoff of the text I place there. The cutoff is existent even if I do
> not update the text inside the tree constantly. It seems that the text
> is halfway below where it should line up. I tried placing an image to
> see if that would correct it, but it does not. The image is perfectly
> lined up, but the text is still misaligned.
>
> Any known issues of this and how to fix it? By the way, it happens in
> both Linux and Windows.
Hi Kiran,
It works fine if you change :
x = self.tree.AppendItem(self.connections[i][j][0], "")
to
x = self.tree.AppendItem(self.connections[i][j][0], " ")
I let you imagine the explanation...
Regards,
jm
Just a hint : it'd be helpfull to solve such a bug if you make your
program more simple. To find out the solution, I reduced your program to
what's following, and the light came :
import wx
import wx.gizmos as gizmos
class AlarmsWindow(wx.MDIChildFrame):
def __init__(self, parent, title, size, pos):
wx.MDIChildFrame.__init__(self, parent, -1, title, size = size,
pos =pos)
self.tree = gizmos.TreeListCtrl(self, -1, style =
wx.TR_DEFAULT_STYLE| wx.TR_FULL_ROW_HIGHLIGHT)
# create some columns
self.tree.AddColumn("Connection")
self.tree.AddColumn("Alarm")
self.tree.AddColumn("Value")
self.tree.SetMainColumn(0)
self.root = self.tree.AddRoot("Connections")
self.tree.Expand(self.root)
self.tree.GetMainWindow().Bind(wx.EVT_RIGHT_UP, self.OnRightUp)
self.Show()
child = self.tree.AppendItem(self.root, 'name')
self.tree.SetItemText(child, 'name')
child2= self.tree.AppendItem(child,'name2')
## x = self.tree.AppendItem(child2, "")
x = self.tree.AppendItem(child2, "XXX")
self.tree.SetItemText(x, 'alarm', 1)
self.tree.SetItemText(x, 'value', 2)
def OnRightUp(self, evt):
pass
class MDIFrame(wx.MDIParentFrame):
def __init__(self):
wx.MDIParentFrame.__init__(self, None, -1, "MDI Parent", size
=(600, 400))
child = AlarmsWindow(self, "Alarm", (400, 300), (0, 0))
if __name__=='__main__':
app = wx.PySimpleApp()
frame = MDIFrame()
frame.Show()
app.MainLoop()
More information about the Python-list
mailing list