pythonでfoobarのalternativeを作る 32 version 12

2019/06/24 14:38 by yamasyuh68
  :追加された部分   :削除された部分
(差分が大きい場合、文字単位では表示しません)
pythonでfoobarのalternativeを作る 32
90621-

# watcdog関係、DB更新~リロード

- 別プロセスとして起動させたDB更新スクリプトの吐くメッセージをパイプで受け取ってメッセージボックスで表示して、YesNo

ですぐリロード出来るようにした
- リロード前のツリーの状態を再現したいんだけど難しい
- そもそもtreeViewの階層構造のデータ検索は難しい事がわかった

## treeViewの階層構造のデータ検索
- ツリーの選択項目を記憶してリロード時に再度選択させたかった
ア-ティストやタイトルなどの項目はタグの書き換えで変わるから、タイトルの第2カラムに非表示で設定してあるファイルのフ

ルパスを記憶してリロード後に選択させたかった
そのためにはtreeからフルパスを検索しなければならない
- treeViewのfindはカラムを指定する、しかしリストなら機能するが階層構造だと機能しない
- AbstractItemViewのmatchでそこそこいける
最後のオプションをrecursiveにセットすれば再帰的に、階層構造の子供まで検索してくれる
しかしそれも第一カラムだけで、第二カラムは検索してくれないんだよ!!┐('д')┌
- ドキュメントを見ると他の挙動が必要なら自分でやってねみたいなことが書かれてる
やれやれ
- 基本はデータモデルの検索だし簡単だと思ってたんだけど
検索に関してはviewの状態に引っ張られてるような感じだなあ・・・・
- とりあえずtreeに表示されてる項目を選択しておけば、その文字列は検索してリロード後に選択するようにはした
- モデルのアイテムを上から順に検索するしかなさそう ( ̄― ̄?)

# ソート
# ソートの CaseSensitive
- ツリーのソートがやはりおかしい
sqlは問題なしと考えてツリーを作成する時にlower()に揃えたんだけど、見てみたらやはり[one ok]と[One Ok]は離れてある
で、わかった
これらが続いていれば同じと判断するけど、間に何かを挟むと別になってしまう
つまりsqlの問題でもあるってことだ
- で、調べたら簡単だった
**order by lower(hogetta)**
order句で指定する時に関数で小文字に揃えれば良い、これでばっちり
時間は体感だけどあんまり変わらなかった
- 日本語も文字の種類が多くて結構面倒だけど、アルファベットも大文字小文字は少し面倒ですよね


      

90621-

watcdog関係、DB更新~リロード

  • 別プロセスとして起動させたDB更新スクリプトの吐くメッセージをパイプで受け取ってメッセージボックスで表示して、YesNo

ですぐリロード出来るようにした

  • リロード前のツリーの状態を再現したいんだけど難しい
  • そもそもtreeViewの階層構造のデータ検索は難しい事がわかった

treeViewの階層構造のデータ検索

  • ツリーの選択項目を記憶してリロード時に再度選択させたかった
    ア-ティストやタイトルなどの項目はタグの書き換えで変わるから、タイトルの第2カラムに非表示で設定してあるファイルのフ

ルパスを記憶してリロード後に選択させたかった
そのためにはtreeからフルパスを検索しなければならない

  • treeViewのfindはカラムを指定する、しかしリストなら機能するが階層構造だと機能しない
  • AbstractItemViewのmatchでそこそこいける
    最後のオプションをrecursiveにセットすれば再帰的に、階層構造の子供まで検索してくれる
    しかしそれも第一カラムだけで、第二カラムは検索してくれないんだよ!!┐('д')┌
  • ドキュメントを見ると他の挙動が必要なら自分でやってねみたいなことが書かれてる
    やれやれ
  • 基本はデータモデルの検索だし簡単だと思ってたんだけど
    検索に関してはviewの状態に引っ張られてるような感じだなあ・・・・
  • とりあえずtreeに表示されてる項目を選択しておけば、その文字列は検索してリロード後に選択するようにはした
  • モデルのアイテムを上から順に検索するしかなさそう ( ̄― ̄?)

ソートの CaseSensitive

  • ツリーのソートがやはりおかしい
    sqlは問題なしと考えてツリーを作成する時にlower()に揃えたんだけど、見てみたらやはり[one ok]と[One Ok]は離れてある
    で、わかった
    これらが続いていれば同じと判断するけど、間に何かを挟むと別になってしまう
    つまりsqlの問題でもあるってことだ
  • で、調べたら簡単だった
    order by lower(hogetta)
    order句で指定する時に関数で小文字に揃えれば良い、これでばっちり
    時間は体感だけどあんまり変わらなかった
  • 日本語も文字の種類が多くて結構面倒だけど、アルファベットも大文字小文字は少し面倒ですよね