scieditor2 hoge version 70
scieditor2 hoge
@[TOC](項目なり)
# 検索の独自実装
- https://codeday.me/jp/qa/20190413/614861.html
ここをみた方が良いかな
- ヒットした個数が知りたい
内部的にはリストかタプルで個数を保持していると思う、ネクストはイテレートしてるのでは?
取得できるか調べてみる
- アウトラインビューにヒットした行を表示する
analyzetree を参考にコーディングする
analyzetreeは行文字を頭打ちにしてるが全て取得しなければならない
検索ウイジェットにボタンを追加「DispLine」
①行を取得する
②検索文字が含まれているかチェック
③含まれていたらツリービューのモデルにappendする -->(行)先頭から10文字、行
④50行超えたら append は中止
⑤ステータスバーにヒット行数を表示する
⑥ビューにモデルをセットする
- カスタムレクサの切替でも良いのでは無いか
検索文字をハイライト表示、htmlなら普通ですよね
# gPad の罫線機能を実装
# 行内の数字加算機能
シンチラ派生クラスのキーにバインド
①現在行文字列を取得
②n桁の数字を検索抽出
③リスト化されて帰るのでその要素を全て加算
④行末に文字列追加~ |***
```
import re
def countnum(self):
# 行文字列取得
line , index = 0 , 0
self.getCursorPosition( line , index )
result = re.findall(r'\d{1,}', self.text( line) )
p= sum( [ int(l) for l in result ] )
p='| ' + str( p ) # 挿入文字列
self.insertAt ( p , line , len( self.text(line).length() ) )
# self.text(line).length() ---> character
# int QsciScintilla::lineLength ( int line ) const ---> bytes
# QsciScintilla.:insertAt ( const QString & text, int line, int index )
# void QsciScintilla::getCursorPosition ( int * line, int * index ) const
```
# ボックス選択した範囲内の数字を加算する機能
## カーソル位置から縦に数値を加算
2
23
256
125
①カーソル位置から最初に出現する数値を取得
②下の行の同じ位置から数値を取得して加算
③数値が無い行まで繰り返し
④数値が無い行の同じカーソル位置に合計値を挿入
# setutf8
今注釈行にしてるのを解除してみる
u8,s-jis が綺麗に保存されることを確認
文書のエンコードを変更できるようにしておく(保存時の)
# テキスト用カスタムレクサ
https://qscintilla.com/
# タブにコンテキストつけて全て閉じるとか実装
- しかしこれなくても良い、簡単だけど
何となく次々と機能増やしたらいつかすごく遅くなってたりするんじゃないのかなって思ったりした
# GrEP
- 前に作ったルーチンを使う
ヒットしたファイルは新規タブを作って表示していく
ダブルクリックで飛びたい
- ディレクトリ選択型ダイアログ
http://qt-log.open-memo.net/sub/dialog__directory_dialog.html
# tryのexceptionを全て表示
# お気に入りのフォルダ sql 化
- sql 化する前に実験する
①treeview とボタンだけのダイアログをdesignerで作って実験する
ボタン:ok : cancel : insFolda
②ドラッグでファイルを追加できること、DDで順番を変更できること
③その順番でsqlで書き出しできること、読みこみできること
- **アウトラインクリック時の挙動も確認**
アウトライン行+10を第1行目にしてみたらどうだろう
# s-barのクラス設計
class mysbar():
def init(p):# p -> statusbr
pにラベルを三つセットする
self.label[]
def settext( str , id ) : # id -> 表示する場所、そのほか特殊メッセ
if id<3 :
self.label[id].setext(str)
elif id==4 : # save message
self.savemes()
else:
pass
def savemes(self):
----
# アウトライン
- **listWidgetの動作を確認**
データモデル作成は良いけど、クリック時の飛び方
- 行データの与え方
非表示で二列目も作る、二列目に行番号を入れる
foobar を参考に
- 解析ルーチンを派生クラスのメソッドにして親から呼ぶ、データモデルをselfで保持する(これは再解析を含む)、データモデルが戻り値
- 親に対してモデルを帰すメソッド実装、タブ切替時に呼ぶ
- かならずモデルを作る、解析すべきモノが無ければ「┐('д')┌」
## リロード時に状態を復元する
----
---
カラーコード
http://www.netyasun.com/home/color.html
## お気に入りの読込
- 設定ファイルに移そう、保存はしばらくしなくていい
設定ファイル自体をお気に入りに追加しておく
settings.beginGroup("favorite")
for i in range(100):
l = settings.value( ''.frmat() ,NULL)
if not l :
break
l.splt('|')
settings.endGroup("favorite")
----------
# ダイレクトコール
できません┐('д')┌
本家サイトで推奨してるので何とか導入したいんだけど
pythonは基本的にはポインタを意識しなくて良い言語だけど、知識がないと対応できない
むしろ型宣言がしっかりした言語の方が使いやすいのかもしれないと思ったりします
cのように、型が厳格なくせにキャストはやりたい放題とか( ´∀`)
出来た方がいらしたら是非教えていただきたいです
---
----
---> [scieditor2](https://mimemo.io/m/zeXgworpjz4K0Ek)
項目なり検索の独自実装gPad の罫線機能を実装行内の数字加算機能ボックス選択した範囲内の数字を加算する機能カーソル位置から縦に数値を加算setutf8テキスト用カスタムレクサタブにコンテキストつけて全て閉じるとか実装GrEPtryのexceptionを全て表示お気に入りのフォルダ sql 化s-barのクラス設計アウトラインリロード時に状態を復元するお気に入りの読込ダイレクトコール
検索の独自実装
-
https://codeday.me/jp/qa/20190413/614861.html
ここをみた方が良いかな -
ヒットした個数が知りたい
内部的にはリストかタプルで個数を保持していると思う、ネクストはイテレートしてるのでは?
取得できるか調べてみる -
アウトラインビューにヒットした行を表示する
analyzetree を参考にコーディングする
analyzetreeは行文字を頭打ちにしてるが全て取得しなければならない
検索ウイジェットにボタンを追加「DispLine」
①行を取得する
②検索文字が含まれているかチェック
③含まれていたらツリービューのモデルにappendする -->(行)先頭から10文字、行
④50行超えたら append は中止
⑤ステータスバーにヒット行数を表示する
⑥ビューにモデルをセットする -
カスタムレクサの切替でも良いのでは無いか
検索文字をハイライト表示、htmlなら普通ですよね
gPad の罫線機能を実装
行内の数字加算機能
シンチラ派生クラスのキーにバインド
①現在行文字列を取得
②n桁の数字を検索抽出
③リスト化されて帰るのでその要素を全て加算
④行末に文字列追加~ |***
import re
def countnum(self):
# 行文字列取得
line , index = 0 , 0
self.getCursorPosition( line , index )
result = re.findall(r'\d{1,}', self.text( line) )
p= sum( [ int(l) for l in result ] )
p='| ' + str( p ) # 挿入文字列
self.insertAt ( p , line , len( self.text(line).length() ) )
# self.text(line).length() ---> character
# int QsciScintilla::lineLength ( int line ) const ---> bytes
# QsciScintilla.:insertAt ( const QString & text, int line, int index )
# void QsciScintilla::getCursorPosition ( int * line, int * index ) const
ボックス選択した範囲内の数字を加算する機能
カーソル位置から縦に数値を加算
2
23
256
125
①カーソル位置から最初に出現する数値を取得
②下の行の同じ位置から数値を取得して加算
③数値が無い行まで繰り返し
④数値が無い行の同じカーソル位置に合計値を挿入
setutf8
今注釈行にしてるのを解除してみる
u8,s-jis が綺麗に保存されることを確認
文書のエンコードを変更できるようにしておく(保存時の)
テキスト用カスタムレクサ
タブにコンテキストつけて全て閉じるとか実装
- しかしこれなくても良い、簡単だけど
何となく次々と機能増やしたらいつかすごく遅くなってたりするんじゃないのかなって思ったりした
GrEP
- 前に作ったルーチンを使う
ヒットしたファイルは新規タブを作って表示していく
ダブルクリックで飛びたい - ディレクトリ選択型ダイアログ
http://qt-log.open-memo.net/sub/dialog__directory_dialog.html
tryのexceptionを全て表示
お気に入りのフォルダ sql 化
-
sql 化する前に実験する
①treeview とボタンだけのダイアログをdesignerで作って実験する
ボタン:ok : cancel : insFolda
②ドラッグでファイルを追加できること、DDで順番を変更できること
③その順番でsqlで書き出しできること、読みこみできること -
アウトラインクリック時の挙動も確認
アウトライン行+10を第1行目にしてみたらどうだろう
s-barのクラス設計
class mysbar():
def init(p):# p -> statusbr
pにラベルを三つセットする
self.label[]
def settext( str , id ) : # id -> 表示する場所、そのほか特殊メッセ
if id<3 :
self.label[id].setext(str)
elif id==4 : # save message
self.savemes()
else:
pass
def savemes(self):
アウトライン
-
listWidgetの動作を確認
データモデル作成は良いけど、クリック時の飛び方 -
行データの与え方
非表示で二列目も作る、二列目に行番号を入れる
foobar を参考に -
解析ルーチンを派生クラスのメソッドにして親から呼ぶ、データモデルをselfで保持する(これは再解析を含む)、データモデルが戻り値
-
親に対してモデルを帰すメソッド実装、タブ切替時に呼ぶ
-
かならずモデルを作る、解析すべきモノが無ければ「┐('д')┌」
リロード時に状態を復元する
カラーコード
http://www.netyasun.com/home/color.html
お気に入りの読込
- 設定ファイルに移そう、保存はしばらくしなくていい
設定ファイル自体をお気に入りに追加しておく
settings.beginGroup("favorite")
for i in range(100):
l = settings.value( ''.frmat() ,NULL)
if not l :
break
l.splt('|')
settings.endGroup("favorite")
ダイレクトコール
できません┐('д')┌
本家サイトで推奨してるので何とか導入したいんだけど
pythonは基本的にはポインタを意識しなくて良い言語だけど、知識がないと対応できない
むしろ型宣言がしっかりした言語の方が使いやすいのかもしれないと思ったりします
cのように、型が厳格なくせにキャストはやりたい放題とか( ´∀`)
出来た方がいらしたら是非教えていただきたいです
---> scieditor2