Как изменить шрифты, используя тематические виджеты в Windows
На OS X, ttk.Style().configure('TLabelframe.label', font='helvetica 14 bold')
работает для изменения шрифта, используемого виджетом ttk.LabelFrame. В Windows ttk.Style().configure('TLabelframe.label', font='arial 14 bold')
не имеет никакого эффекта, кроме как вернуть ту же информацию о шрифте ttk.Style().lookup('TLabelframe.label','font')
,
Я пробовал разные имена и форматы шрифтов, создавая производный стиль, используя TkDefaultFont и просто меняя размер, а также разные виджеты (TButton.label, TCheckbutton.label). До сих пор, независимо от того, что я пробовал, всегда используется TkDefaultFont в размере по умолчанию.
Изменение настройки шрифта в python27/tcl/tk8.5/ttk/xpTheme.tcl (тема по умолчанию для окон) меняет отображаемый шрифт. Удаление -font TkDefaultFont
настройка из настроек темы не меняет то, что отображается.
Любые предложения относительно того, как это на самом деле работает?
Изменить: я не пытался изменить шрифт для виджета Label раньше, и это на самом деле работает.
2 ответа
Я считаю, что код в этой области глючит и откроет тикет. Использование 'TLableframe.Label' (обратите внимание на прописную букву 'L' в 'Label' работает. TButton.label 'и' TButton.Label 'не работают, но работает просто' TButton '; TCheckbutton - то же самое. Я был невозможно изменить шрифты для "TEntry" с любой комбинацией, включая добавление "textarea".
Похоже на ttk.LabelFrame
, вы должны создать отдельный ttk.Label
виджет, а затем назначить его для LabelFrame, используя labelwidget=
операнд. Вы можете установить любой шрифт / стиль в виджете Label, который вы хотите, и это будет отражено в LabelFrame. Обратите внимание, что вы не вызываете менеджер геометрии для виджета Label. Просто создайте его экземпляр, а затем назначьте его метке LabelFrame.
Это также означает, что вы можете назначить практически любой виджет, который вы хотите, например, ttk.Checkbutton
, если вы хотите контролировать состояние дочерних элементов управления внутри LabelFrame. Вы должны написать код для этого, но визуально, он будет включать / отключать дочерние элементы управления в зависимости от состояния кнопки.
Источник: http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/ttk-LabelFrame.html