カテゴリーリスト

全てのカテゴリを設定した記事です。
常に一番上に表示されます。
乱雑に記事を作成しているため、カテゴリ毎に確認できればと思い作成しています。

寒いね

習慣化2_17日目

年末ですね。私は非常に寒がりなので、ヒートテック着て極暖を着て、股引をはいて、首巻きをして、コートをはおり、手袋を付けて、もこもこの靴下をはいて、暖房を効かせ、こたつに入り、熱い鍋を食べて、そんな感じで冬を過ごします。

寒いよー

pythonのtkinterでメモ帳作り_改行したとき行頭にインテンドや箇条書きがあれば改行後も引き継ぐ_インテンドと数字箇条書き改修版

習慣化2_16日目

どこかで記事をまとめたいが、少しずつ進めたことをメモしていく。

tkrou.hatenablog.jp

前回作成した「改行したとき行頭にインテンドや箇条書きがあれば改行後も引き継ぐ」機能を一部改修した。

  • 箇条書きがない場合、インテンドに半角スペースがドンドン追加されてしまう不具合を修正した
  • 数字形式の箇条書き機能を追加した

作成した関数

def check_enter(self):
    # 改行したとき、もとの行のテキストを取得する
    # cursor_now = TextArea.index('insert -1lines') # ic| cursor_now: '1.0'
    pre_row_text = TextArea.get('insert -1lines', 'insert -1lines lineend')
    # re.matchで行頭の半角全角スペースタブやアスタリスクを取得
    gyoto = re.match(r'([  \t]*)([\*\+\-・])', pre_row_text) # ic| gyoto: <re.Match object; span=(0, 2), match='\t*'>
    # 取得した行頭がNoneじゃなかったら、その取得内容を改行後の先頭に挿入する
    if gyoto is not None:
        TextArea.insert('insert', gyoto.group()+" ")
        return

    # re.matchで行頭の半角全角スペースタブ+数字箇条書きを取得
    gyoto = re.match(r'([  \t]*)([0-9]{1,})\. ', pre_row_text) # ic| gyoto: <re.Match object; span=(0, 2), match='\t*'>
    # 取得した行頭がNoneじゃなかったら、その取得内容を改行後の先頭に挿入する
    if gyoto is not None:
        # 行頭のすペースを取得しておく
        gyoto_space = re.match(r'([  \t]*)', gyoto.group())
        # 取得した行頭の数字を取得して1加算する
        gyoto_count = re.search(r'([0-9]{1,})', gyoto.group())
        gyoto_count = int(gyoto_count.group())+1 # ic| gyoto_count: 2
        # その数字を改行後の先頭に追加する
        TextArea.insert('insert', gyoto_space.group()+str(gyoto_count)+". ")
        return

    # 行頭がスペース関連だけだった場合、つまり箇条書きではないがインテンドだった場合も維持する
    gyoto = re.match(r'([  \t]+)', pre_row_text) # ic| gyoto: <re.Match object; span=(0, 2), match='\t*'>
    # 取得した行頭がNoneじゃなかったら、その取得内容を改行後の先頭に挿入する
    if gyoto is not None:
        TextArea.insert('insert', gyoto.group())
  
  
# メイン内での処理
if __name__ == '__main__':
    (snip)
    root.bind("<KeyPress-Return>", check_enter)

あとやりたいこと

  • 箇条書き中に TAB や Shift+TAB でインテンドし、箇条書きの形式を変えたい * → - → + という感じ
  • 数字箇条書きのときも TAB や Shift+TAB でインテンドし、新しい1からの箇条書きになったりもとの数字に戻ったりしたい

K: P: T:

習慣化2_15日目

K:特に書くことが思いつかなくてもなんでいいから毎日更新するというは続けてたら良いかも。「なんもないけど…まぁそういえばあれあったかな」みたいな無理矢理ではないがひねりだそうという思考になりやすい。それが習慣化の第一歩なのだ!

P:でもやらない日もある。迷うというより、スポンと抜け落ちる感じ。一日のうちに書く時間がきまっていないせいか? 何かの作業のあと、みたいな感じで一連の流れに組み込めればよいのだけど。朝起きた直後だと本当にかくことなかったりするしなー。でもそれこそ何もないというのを毎朝書くようにしたらいいのか?

T:朝起きた最初にすることを記事の更新にした! まずは朝起きたらPCを開けるだけあけてみよう。

自作のexeがウィルスとして検出され自動削除されていた→ウィルスの脅威の詳細から対象のファイルを確認して、[許可する]

習慣化2_14日目

Excel+仮想デスクトップをスムーズに実施するために作成した自作のexeがウィルスとして検出され自動削除されていた。

昨日まで問題なかったのでソフトのアップデートでもあったのかも知れない。
クラウド上に保存していたので、ダウンロードしなおしたところ、何回でも検出されて削除されてしまう。

警告結果のウィンドウから、詳細を押すと対象のファイルが確認出来る。
そのファイルが問題なければ、[許可する]を選択してあげれば削除されなくなる。

あーびっくりした。

pythonのtkinterでメモ帳作り_改行したとき行頭にインテンドや箇条書きがあれば改行後も引き継ぐ

習慣化2_13日目

どこかで記事をまとめたいが、少しずつ進めたことをメモしていく。

ここで記載している内容を一部改修した記事↓

tkrou.hatenablog.jp

作成した関数

def check_enter(self):
    # 改行したとき、もとの行のテキストを取得する
    # cursor_now = TextArea.index('insert -1lines') # ic| cursor_now: '1.0'
    pre_row_text = TextArea.get('insert -1lines', 'insert -1lines lineend')
    # re.matchで行頭の半角全角スペースタブやアスタリスクを取得
    gyoto = re.match(r'([  \t]*)([\*\+\-])|([  \t]+)', pre_row_text) # ic| gyoto: <re.Match object; span=(0, 2), match='\t*'>
    # 取得した行頭がNoneじゃなかったら、その取得内容を改行後の先頭に挿入する
    if gyoto is not None:
        TextArea.insert('insert', gyoto.group()+" ")
  
  
# メイン内での処理
if __name__ == '__main__':
    (snip)
    root.bind("<KeyPress-Return>", check_enter)

改行するたびにチェックが入るからか、さすがに少しメモ帳が重くなったかも?

参考にしたページ

テキストエリアの情報を取得する

blog.narito.ninja

Textウィジェットでできることが、めちゃくちゃ分かりやすく整理されている

    # 改行したとき、もとの行のテキストを取得する
    # cursor_now = TextArea.index('insert -1lines') # ic| cursor_now: '1.0'
    pre_row_text = TextArea.get('insert -1lines', 'insert -1lines lineend')

正規表現で行頭の文字列を取得する

re.matchについて
https://note.nkmk.me/python-re-match-search-findall-etc//note.nkmk.me

# 複数文字で区切ったりするため、正規表現を使用する
import re
(snip)

    # re.matchで行頭の半角全角スペースタブやアスタリスクを取得
    gyoto = re.match(r'([  \t]*)([\*\+\-])|([  \t]+)', pre_row_text) # ic| gyoto: <re.Match object; span=(0, 2), match='\t*'>
    # 取得した行頭がNoneじゃなかったら、その取得内容を改行後の先頭に挿入する
    if gyoto is not None:
        TextArea.insert('insert', gyoto.group()+" ")

いつもありがとうございます!