Вы можете сортировать ключи так, как хотите, разбивая их на «.». и затем преобразование каждого из компонентов в целое число, например:
sorted(mydict.keys(), key=lambda a:map(int,a.split('.')))
, который возвращает это:
['0',
'1',
'2.0',
'2.1',
'3',
'4.0.0',
'4.0.1',
'5',
'10',
'11.0',
'11.1',
'12.0',
'12.1.0',
'12.1.1']
Вы можете перебирать этот список ключей и вытягивать значения из вашего словаря по мере необходимости.
Вы также можете сортировать результат mydict.items (), очень похожим:
sorted(mydict.items(), key=lambda a:map(int,a[0].split('.')))
Это дает вам отсортированный список (ключ , value), например:
[('0', 10),
('1', 23),
('2.0', 321),
('2.1', 3231),
('3', 3),
# ...
('12.1.1', 2)]
TornadoFX не вносит никаких изменений в контейнер TabPane, поэтому точно такие же CSS и свойства будут работать для приложения TornadoFX. Я думаю, что вы имели в виду .tab-панель вместо .tab-container. Если вы хотите написать то же самое, используя безопасный тип CSS, это будет:
tabPane {
backgroundColor += Color.TRANSPARENT
rotate = 90.deg
}