Я не использовал PyQt, но если это что-то вроде PyGTK, можно использовать что-то вроде виджет дерева.
Хотя в качестве альтернативы вы можете просто использовать форматирование строки (намного лучше, чем разделение табуляцией):
(новый стиль форматирования)
'{0:20}{0:20}'.format('l','lines in current document')
И если вы хотите убедиться, что для каждого из крупнейших достаточно, вы можете сделать что-то вроде this :
leftwidth = len(max(['l', 'foo', 'longitem'], key=len))
rightwidth = len(max(['Number of lines',
'some other option',
'yet another long option'], key=len))
'{key:{L}}{desc:{R}}'.format(key='l',desc='Number of lines',
L=leftwidth, R=rightwidth)
А если вы храните ваш ключ / описание в словаре, то еще проще автоматизировать процесс.