mieki256's diary



2012/09/28(金) [n年前の日記]

#1 [python] QTextCursorを勉強中

PyQtを勉強中。

行の複製をやりたかったのだけど、たぶんできたっぽい。
    def duplicate_line(self):
        """行を複製"""
        self.textEdit = self.ui.editor_window
        c = self.textEdit.textCursor()
        qb = c.block()          # QTextBlock を取得
        qs = qb.text()          # QTextBlock内の文字列を取得
        c.beginEditBlock()      # Undo履歴の制御
        if not c.atBlockStart():
            # Blockの頭(=行頭)にカーソルが無いので、行頭にカーソルを移動
            c.movePosition(QtGui.QTextCursor.StartOfBlock)
        c.insertText(qs + "\n")     # Block文字列を挿入
        c.endEditBlock()        # Undo履歴の制御

QtextCursor.columnNumber() で、行頭から何文字目にカーソルがあるのか取得できるかなと思ったけれど。値を確認してみたら、あくまで見た目の文字数で。1行が長くて折り返し表示されている状態では、行頭から何文字目なのか取得できないので、判定等には使えない感じ。どうやら QtextCursor においては、block という種類が見た目ではない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