2013-10-01 1 views
1

Я хотел бы изменить шрифт в TextEditor в представлении TraitsUI. Как я могу это сделать?Изменение шрифта в Enthought TraitsUI TextEditor

Я прочитал (отличную) документацию, справочные документы API и попросил Google ответить, но не смог найти ее.

Платформа и независимость от инструментария не являются обязательным требованием для моего приложения. Я работаю над Windows и использую набор инструментов wx.

ответ

2

После того, как вы вникли в исходный код и некоторые эксперименты, я придумал следующее решение. Для меня это кажется слишком сложным (я должен подклассифицировать два класса!), Чтобы быть самым простым или предназначенным способом для этого.

Если есть лучшее решение, я был бы рад узнать об этом.

import wx 
from traitsui.wx.text_editor import CustomEditor 
from traitsui.editors.text_editor import ToolkitEditorFactory 

class _MyTextEditor(CustomEditor): 
    def init(self, parent): 
     CustomEditor.init(self, parent) 
     font = wx.Font(10, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL) 
     self.control.SetFont(font) 

class MyTextEditor(ToolkitEditorFactory): 
    klass = _MyTextEditor 
    def _get_custom_editor_class(self): 
     return _MyTextEditor 
    def _get_simple_editor_class(self): 
     return _MyTextEditor 

if __name__ == "__main__": 
    from traitsui.api import View, Item 
    from traits.api import Str, HasTraits 

    class MyTestcase(HasTraits): 
     a_string = Str() 
     traits_view = View(Item('a_string', editor=MyTextEditor())) 

    w = MyTestcase() 
    w.configure_traits() 
0

Я думаю, что черты используют Qt. Чтобы изменить размер шрифта, используйте аргумент style_sheet. Смотрите пример ниже

Item('a_string', style_sheet='*{font-size:24px}') 

Если вы хотите применить несколько вариантов шрифта, выделенные точкой с запятой, как это:

Item('a_string', style_sheet='*{font-size:24px; font-style:italic}') 

Для всех Qt вариантов стилей, которые можно применять, посмотреть на Qt Style Sheets Reference

 Смежные вопросы

  • Нет связанных вопросов^_^