mieki256's diary



2012/09/26(水) [n年前の日記]

#1 [python] QTextEditで実験中

PyQt の QtextEdit を勉強中。

行の区切り文字。 :

QTextCursor.selectedText() で選択範囲の文字列を取得した後、改行コード("\n") で split() してリストを得れば、行単位で処理ができるかも、と思ったものの。試してみると上手く行かずにハマったり。

_QTextCursor Class Reference を読んでみたら、どうも Unicode U+2029 paragraph separator character なるものでどうにかしろと書いてあるようで。試しに、.split(u"\u2029") としてみたら、一応行単位でリストに出来たように見える。これで合ってるのかどうかわからんけど。

.replace() で \n に変換せよ、と書いてあるようにも見えるのだけど、そのようにしてみたら、謎の文字が混入するように見えた。なんでだろ。

Undo/Redoの有効無効。 :

Undo/Redoが使えるか使えないかを、ツールバー上のボタンやメニュー項目に反映させたいなと思ったのだけど、やり方が分からず。

_Index of /doc/PyQt4-devel-4.8.6/examples/demos/textedit の textedit.py にやり方の例が書いてあった。重要なところだけ引用。
        self.textEdit.document().undoAvailable.connect(self.actionUndo.setEnabled)
        self.textEdit.document().redoAvailable.connect(self.actionRedo.setEnabled)

        self.actionUndo.setEnabled(self.textEdit.document().isUndoAvailable())
        self.actionRedo.setEnabled(self.textEdit.document().isRedoAvailable())
おそらくだけど、 .undoAvailable()、.redoAvailable() が、Undo/Redoの履歴に変化があった時に出てくるシグナル(イベントみたいなもの?)じゃないかと。そして、actionUndo は、おそらくUndo用に用意されたメニュー項目。setEnabled() は、項目を有効にするか無効にするか指定出来て。QTextEdit.document() が Undo/Redoができるかどうかを .isUndoAvailable()、.isRedoAvailable() で持っているから、ソレをそのまま渡して有効無効を切替える。のかなと。自信無いけど。

以上、1 日分です。

過去ログ表示

Prev - 2012/09 - Next
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project