Как изменить шрифты, используя тематические виджеты в 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

Другие вопросы по тегам