Предпочтительный размер wx.TreeCtrl - это минимальный размер, в который будут помещаться все элементы, когда дерево полностью свернуто. Есть ли хороший (то есть кроссплатформенный) способ вычисления ширины дерева со всем расширением? Мое текущее решение таково:
def max_width(self):
dc = wx.ScreenDC()
dc.SetFont(self.GetFont())
widths = []
for item, depth in self.__walk_items():
if item != self.root:
width = dc.GetTextExtent(self.GetItemText(item))[0] + self.GetIndent()*depth
widths.append(width)
return max(widths) + self.GetIndent()
Это прекрасно работает в win32, но не под Linux. Есть ли какой-нибудь способ заставить TreeCtrl сообщать мне его размер, чтобы я мог переопределить размер, который он сообщает? (Всегда возвращая максимально расширенную ширину)
edit: извините за то, что я не предоставляю функции, которые я использую выше, но вы поймете, я иду по дереву, получаю ширину каждой метки и возвращаю общую ширину самой широкой ( учет отступа)