2023年08月16日

wxPython でスタイル付きテキストエディタを作る

 久しぶりに wxPython を引っ張り出して、こんなのを作っています。

20230816-1.jpg

 文字に属性をつけられるテキストエディタです。属性といっても、フォントサイズ・色・太字や斜体に加えて、上付き・下付き・下線ぐらいが実装できればよくて、画像の埋め込みとかは必要ありません。このぐらいのライトな属性付きエディタが、実はなかなかありません。特に「上付き・下付き」が曲者なのです。

 wxWidgets には wxTextCtrl があって、wxTE_RICH というスタイルが選択できるようにはなっています。これはフォントサイズ・色・太字・斜体はサポートされていますが、上付き・下付きがだめです。また、wxRichTextCtrl というのもあって、これはたいへん高機能なのですが、時々クラッシュしたりするので、いまいち安心できません。また、縦スクロールバーを消すことができないとか、どうも細かい制御が難しくて、使いづらいのです。

 Visual Studio Code で頑張って書いてます。なかなか大変です。昔、Oh! X 誌で祝一平氏が、C言語でエディタを作る連載を書いていて、「エディタの開発は泥臭い作業の積み重ねだ」みたいなことを言っておられたのですが、本当にそうですね。今は CPU の処理速度が速いので、「ユーザーを待たせないための工夫(改行位置の計算をバックグラウンドでやるとか)」があまり必要でない分、少しは楽になったとは思います。Python で書いていても、処理速度的にはそんなに問題はなさそうなので。(編集するテキストが巨大になるとそうもいかないと思いますが)

20230816-2.jpg

Posted at 2023年08月16日 15:07:05
email.png