scieditor2 hoge version 54

2019/09/06 16:42 by yamasyuh68
  :追加された部分   :削除された部分
(差分が大きい場合、文字単位では表示しません)
scieditor2   hoge
@[TOC](項目なり)

# 検索の実装
SCI_SEARCHINTARGET(position length, const char *text) → position
virtual bool QsciScintilla::findFirst  ( const QString &  expr,  
  bool  re,    bool  cs,   bool  wo,    bool  wrap,  
  bool  forward = true,  
  int  line = -1,  
  int  index = -1,  
  bool  show = true,  
  bool  posix = false,  
  bool  cxx11 = false  
 )   

self.ui.qsci.findFirst ( text, 1,0,0,1  )
findNext ( ) 
replace ( text )
cancelFind ( )

文字列exprの最初の出現を検索し、exprが見つかった場合はtrueを返し、そうでない場合はfalseを返します。 exprが見つかると、それが現在の選択になります。
reがtrueの場合、exprは単純な文字列ではなく正規表現として解釈されます。
csがtrueの場合、検索では大文字と小文字が区別されます。
woがtrueの場合、検索では単語全体の一致のみが検索され、そうでない場合は一致するテキストが検索されます。
wrapがtrueの場合、検索はテキストの終わりを折り返します。
forwardがtrue(デフォルト)の場合、検索は開始位置からテキストの終わりまで順方向に行われ、そうでない場合はテキストの先頭まで逆方向に行われます。
lineまたはindexのいずれかが負の場合(デフォルト)、現在のカーソル位置から検索が開始されます。それ以外の場合、行lineの位置インデックスから検索が開始されます。
showがtrue(デフォルト)の場合、見つかったテキストはすべて表示されます(つまり、展開されます)。
posixがtrueの場合、正規表現は、(および)ではなくタグ付きセクションとして裸の(および)を解釈することにより、よりPOSIX互換の方法で処理されます。
cxx11がtrueの場合、正規表現はCxx11正規表現として扱われます。


# 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で保持する(これは再解析を含む)、データモデルが戻り値
- 親に対してモデルを帰すメソッド実装、タブ切替時に呼ぶ
- かならずモデルを作る、解析すべきモノが無ければ「┐('д')┌」


----
# タブ名の変更 新規保存時
QTabWidget.setTabText (self, int index, QString)
int QTabWidget.currentIndex (self)

# 重複確認
QString QTabWidget.tabText (self, int index)
int QTabWidget.count (self)
QWidget QTabWidget.widget (self, int index)

for i in range( tabwidget.count() ) :
    if fname ==   tabwidget.widget(i).**子供**.procDict['fname']
    **ロードしないでそのタブを表示して終わる**
    **その旨メッセージ出すか**


---
カラーコード
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")

----------


---

----
---> [scieditor2](https://mimemo.io/m/zeXgworpjz4K0Ek)

      

項目なり検索の実装tryのexceptionを全て表示お気に入りのフォルダ sql 化s-barのクラス設計ロード時の重複チェックアウトラインタブ名の変更 新規保存時重複確認お気に入りの読込

検索の実装

SCI_SEARCHINTARGET(position length, const char *text) → position
virtual bool QsciScintilla::findFirst ( const QString & expr,
bool re, bool cs, bool wo, bool wrap,
bool forward = true,
int line = -1,
int index = -1,
bool show = true,
bool posix = false,
bool cxx11 = false
)

self.ui.qsci.findFirst ( text, 1,0,0,1 )
findNext ( )
replace ( text )
cancelFind ( )

文字列exprの最初の出現を検索し、exprが見つかった場合はtrueを返し、そうでない場合はfalseを返します。 exprが見つかると、それが現在の選択になります。
reがtrueの場合、exprは単純な文字列ではなく正規表現として解釈されます。
csがtrueの場合、検索では大文字と小文字が区別されます。
woがtrueの場合、検索では単語全体の一致のみが検索され、そうでない場合は一致するテキストが検索されます。
wrapがtrueの場合、検索はテキストの終わりを折り返します。
forwardがtrue(デフォルト)の場合、検索は開始位置からテキストの終わりまで順方向に行われ、そうでない場合はテキストの先頭まで逆方向に行われます。
lineまたはindexのいずれかが負の場合(デフォルト)、現在のカーソル位置から検索が開始されます。それ以外の場合、行lineの位置インデックスから検索が開始されます。
showがtrue(デフォルト)の場合、見つかったテキストはすべて表示されます(つまり、展開されます)。
posixがtrueの場合、正規表現は、(および)ではなくタグ付きセクションとして裸の(および)を解釈することにより、よりPOSIX互換の方法で処理されます。
cxx11がtrueの場合、正規表現はCxx11正規表現として扱われます。

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で保持する(これは再解析を含む)、データモデルが戻り値

  • 親に対してモデルを帰すメソッド実装、タブ切替時に呼ぶ

  • かならずモデルを作る、解析すべきモノが無ければ「┐('д')┌」


タブ名の変更 新規保存時

QTabWidget.setTabText (self, int index, QString)
int QTabWidget.currentIndex (self)

重複確認

QString QTabWidget.tabText (self, int index)
int QTabWidget.count (self)
QWidget QTabWidget.widget (self, int index)

for i in range( tabwidget.count() ) :
if fname == tabwidget.widget(i).子供.procDict['fname']
ロードしないでそのタブを表示して終わる
その旨メッセージ出すか


カラーコード
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")




---> scieditor2