scieditor2 hoge version 164
scieditor2 hoge
@[TOC](項目なり)
# 機能分化
- 目的は起動の高速化です
機能をダイナミックに読み込むようにすれば起動には関係ないし、そもそも使わないことも多い機能もあるし
具体的にはシンチラ派生クラスに実装したこまごまとした機能群
- subprocess.Popen でスクリプトを実行、引数としてシンチラオブジェクトを渡す
スクリプト内でシンチラオブジェクトを受け取って文字列を取得してみる
- うまくいかん **┐('д')┌**
# 強制的にU8で保存
# foobalt
- refresh のsqlite コマンドをパイソンの f'' で書き直してみる
- 起動後直ぐ演奏機能真剣に考える
- 演奏停止状態で終了したら曲を保存しないバグFIX
## VLC キャッシュ設定
あすたらびすた
http://blog.livedoor.jp/hasta_la_vista/archives/52213920.html
VLCのバッファ、キャッシュ設定
https://figfig-anime.blog.ss-blog.jp/2014-07-10
## [Qt] QSplitter のバー位置を調整する
QSplitter で 2:3 の割合に調整する場合。
// 左
splitter->setStretchFactor(0, 2);
// 右
splitter->setStretchFactor(1, 3);
# 行頭空白削除も簡単だよな
範囲指定あるなしで分岐する仕組みは同じだな
機能をクラス化して分けた方が良いかも??
# お気に入りファイルを保存した場合は自動でビューを更新
---
---
# 新規文書をキーバインド、すぐフォーカス
# 派生クラスからのシグナルを一本化する
# BugFix
- アナライズが再構築のときはうまく作動しない
# 拡張子CSVでテーブルビュー表示
# Cython Numba
[公式チュート](http://omake.accense.com/static/doc-ja/cython/src/userguide/tutorial.html)
- Numba AOT
https://qiita.com/yniji/items/5b191d4274f53c8f751a
- numbaによるfor文の高速化とjitの引数
https://qiita.com/nabenabe0928/items/a02964d8b48619b1e348
# かな漢字モードでカーソルかえる IME変換モード
ここもかな
http://www7a.biglobe.ne.jp/~tsuneoka/win32tech/7.html
IMEのON/OFF状態を取得したい。
https://teratail.com/questions/137570
```
from ctypes import WinDLL
from threading import Thread
from time import sleep
from tkinter import Tk
def ime_check():
user32 = WinDLL("user32")
imm32 = WinDLL("imm32")
while True:
hWnd = user32.GetForegroundWindow()
hIMC = imm32.ImmGetContext(hWnd)
print("hWnd:", hWnd, "hIMC:", hIMC, "ImmGetOpenStatus:", imm32.ImmGetOpenStatus(hIMC))
imm32.ImmReleaseContext(hWnd, hIMC)
sleep(1)
Thread(target=ime_check, daemon=True).start()
root = Tk()
root.mainloop()
```
## get winhandle
- Widgetのウィンドウハンドル(HWND)を取得する
Widgetのウィンドウハンドル(WindowsのHWND)を取得するには、Wid QWidget::wndId()またはWId QWidget::effectiveWinId()を使用する。
effectiveWinId()はそのWidgetが正当なウィンドウハンドルを持っていない場合は親を辿って有効なウィンドウハンドルを探す。
返す値はWIdというQtの型なのでプラットフォームに適した型にキャストして使用する。
# 実験
- analyze 計測したい、シンチラの関数→シンチラの方が速い(゚Д゚)
- 検索
置換文字列に \r\n を入れたら改行する
検索文字列では無視された
**複数行検索は独自実装だな**
- 文書取得の実験
print( 'byte' , self.bytes( 0 , self.length() ) ) # ---> bytearray
print( 'text' , self.text() ) # ---> str
- 保存時u8ならself.bytesでいけるのか??
- 高速化 numba 逆に遅くなった
- treeWidget に setModel() する --> できません ┐('д')┌
# 疑問
- 同じuiファイルに複数のダイアログを作れるか
- ダイレクトコール
できません┐('д')┌
本家サイトで推奨してるので何とか導入したいんだけど
pythonは基本的にはポインタを意識しなくて良い言語だけど、知識がないと対応できない
むしろ型宣言がしっかりした言語の方が使いやすいのかもしれないと思ったりします
cのように、型が厳格なくせにキャストはやりたい放題とか( ´∀`)
出来た方がいらしたら是非教えていただきたいです
# タブにコンテキストつけて全て閉じるとか実装
- しかしこれなくても良い、簡単だけど
何となく次々と機能増やしたらいつかすごく遅くなってたりするんじゃないのかなって思ったりした
# 将来的に
## テキストのクリッカブル
レクサーの機能みたいだけど
ダブルクリック位置の文字列を取り出して何かするのは実装出来そう
## Python で定数を定義する
https://maku77.github.io/python/syntax/const.html
- 定数用のクラスを作るって事みたい、使えるかな
## 定型句挿入
上のタブにリストを追加するか?絵文字は使うけどな
あんまり使わないかなあ・・・・
## gPad の罫線機能を実装
## GrEP
- 前に作ったルーチンを使う
ヒットしたファイルは新規タブを作って表示していく
ダブルクリックで飛びたい
- ディレクトリ選択型ダイアログ
http://qt-log.open-memo.net/sub/dialog__directory_dialog.html
## tryのexceptionを全て表示
## お気に入りのフォルダ sql 化
- **テキストの方が簡単に直せて良いかもだなあ**
- sql 化する前に実験する
①treeview とボタンだけのダイアログをdesignerで作って実験する
ボタン:ok : cancel : insFolda
②ドラッグでファイルを追加できること、DDで順番を変更できること
③その順番でsqlで書き出しできること、読みこみできること
----
---
カラーコード
http://www.netyasun.com/home/color.html
----
---> [scieditor2](https://mimemo.io/m/zeXgworpjz4K0Ek)
項目なり機能分化強制的にU8で保存foobaltVLC キャッシュ設定行頭空白削除も簡単だよなお気に入りファイルを保存した場合は自動でビューを更新新規文書をキーバインド、すぐフォーカス派生クラスからのシグナルを一本化するBugFix拡張子CSVでテーブルビュー表示Cython Numbaかな漢字モードでカーソルかえる IME変換モードget winhandle実験疑問タブにコンテキストつけて全て閉じるとか実装将来的にテキストのクリッカブルPython で定数を定義する定型句挿入gPad の罫線機能を実装GrEPtryのexceptionを全て表示お気に入りのフォルダ sql 化
機能分化
- うまくいかん ┐('д')┌
強制的にU8で保存
foobalt
- refresh のsqlite コマンドをパイソンの f'' で書き直してみる
- 起動後直ぐ演奏機能真剣に考える
- 演奏停止状態で終了したら曲を保存しないバグFIX
VLC キャッシュ設定
あすたらびすた
http://blog.livedoor.jp/hasta_la_vista/archives/52213920.html
VLCのバッファ、キャッシュ設定
https://figfig-anime.blog.ss-blog.jp/2014-07-10
行頭空白削除も簡単だよな
範囲指定あるなしで分岐する仕組みは同じだな
機能をクラス化して分けた方が良いかも??
お気に入りファイルを保存した場合は自動でビューを更新
新規文書をキーバインド、すぐフォーカス
派生クラスからのシグナルを一本化する
BugFix
- アナライズが再構築のときはうまく作動しない
拡張子CSVでテーブルビュー表示
Cython Numba
- Numba AOT
https://qiita.com/yniji/items/5b191d4274f53c8f751a - numbaによるfor文の高速化とjitの引数
https://qiita.com/nabenabe0928/items/a02964d8b48619b1e348
かな漢字モードでカーソルかえる IME変換モード
ここもかな
http://www7a.biglobe.ne.jp/~tsuneoka/win32tech/7.html
IMEのON/OFF状態を取得したい。
https://teratail.com/questions/137570
from ctypes import WinDLL
from threading import Thread
from time import sleep
from tkinter import Tk
def ime_check():
user32 = WinDLL("user32")
imm32 = WinDLL("imm32")
while True:
hWnd = user32.GetForegroundWindow()
hIMC = imm32.ImmGetContext(hWnd)
print("hWnd:", hWnd, "hIMC:", hIMC, "ImmGetOpenStatus:", imm32.ImmGetOpenStatus(hIMC))
imm32.ImmReleaseContext(hWnd, hIMC)
sleep(1)
Thread(target=ime_check, daemon=True).start()
root = Tk()
root.mainloop()
get winhandle
- Widgetのウィンドウハンドル(HWND)を取得する
Widgetのウィンドウハンドル(WindowsのHWND)を取得するには、Wid QWidget::wndId()またはWId QWidget::effectiveWinId()を使用する。
effectiveWinId()はそのWidgetが正当なウィンドウハンドルを持っていない場合は親を辿って有効なウィンドウハンドルを探す。
返す値はWIdというQtの型なのでプラットフォームに適した型にキャストして使用する。
実験
- analyze 計測したい、シンチラの関数→シンチラの方が速い(゚Д゚)
- 検索
置換文字列に \r\n を入れたら改行する
検索文字列では無視された
複数行検索は独自実装だな - 文書取得の実験
print( 'byte' , self.bytes( 0 , self.length() ) ) # ---> bytearray
print( 'text' , self.text() ) # ---> str - 保存時u8ならself.bytesでいけるのか??
- 高速化 numba 逆に遅くなった
- treeWidget に setModel() する --> できません ┐('д')┌
疑問
- 同じuiファイルに複数のダイアログを作れるか
- ダイレクトコール
できません┐('д')┌
本家サイトで推奨してるので何とか導入したいんだけど
pythonは基本的にはポインタを意識しなくて良い言語だけど、知識がないと対応できない
むしろ型宣言がしっかりした言語の方が使いやすいのかもしれないと思ったりします
cのように、型が厳格なくせにキャストはやりたい放題とか( ´∀`)
出来た方がいらしたら是非教えていただきたいです
タブにコンテキストつけて全て閉じるとか実装
- しかしこれなくても良い、簡単だけど
何となく次々と機能増やしたらいつかすごく遅くなってたりするんじゃないのかなって思ったりした
将来的に
テキストのクリッカブル
レクサーの機能みたいだけど
ダブルクリック位置の文字列を取り出して何かするのは実装出来そう
Python で定数を定義する
https://maku77.github.io/python/syntax/const.html
- 定数用のクラスを作るって事みたい、使えるかな
定型句挿入
上のタブにリストを追加するか?絵文字は使うけどな
あんまり使わないかなあ・・・・
gPad の罫線機能を実装
GrEP
- 前に作ったルーチンを使う
ヒットしたファイルは新規タブを作って表示していく
ダブルクリックで飛びたい - ディレクトリ選択型ダイアログ
http://qt-log.open-memo.net/sub/dialog__directory_dialog.html
tryのexceptionを全て表示
お気に入りのフォルダ sql 化
- テキストの方が簡単に直せて良いかもだなあ
- sql 化する前に実験する
①treeview とボタンだけのダイアログをdesignerで作って実験する
ボタン:ok : cancel : insFolda
②ドラッグでファイルを追加できること、DDで順番を変更できること
③その順番でsqlで書き出しできること、読みこみできること
カラーコード
http://www.netyasun.com/home/color.html
---> scieditor2