2

TraitsUI ビューの TextEditor でフォントを変更したいと思います。これどうやってするの?

(優れた) ドキュメント、API リファレンス ドキュメントを読み、Google に回答を求めましたが、見つかりませんでした。

プラットフォームおよびツールキットに依存しないことは、アプリケーションの要件ではありません。私は Windows で作業しており、wx ツールキットを使用しています。

4

2 に答える 2

2

ソースコードを掘り下げて実験した後、次の解決策を思いつきました。私には、これは複雑すぎるように思えます (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()
于 2013-10-01T08:52:19.647 に答える