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()