scieditor2 08 version 1

2019/09/16 00:33 by yamasyuh68
  :追加された部分   :削除された部分
(差分が大きい場合、文字単位では表示しません)
scieditor2  08
190915-
# 検索条件保存
ダイアログ
ほぼ考えてたとおりに実装できたがダイアログの使い方がいまひとつ
このようにダイアログをQDialogの派生クラスとして作るとデザイナーで設定したスロットの収まりが良いのだが、これで正解なんだろうか?

- Scintilla.py
```
class MainWindow(QMainWindow):
    def searchsave(self):
        text=QInputDialog.getText(self,r'( ´∀`)','set Name')
        if text[1]:
            self.db.searchsave((text[0] ,self.ui.lineEdit.text() , self.ui.lineEdit_3.text()))
    def searchload(self): # Show Dialog
        self.sdlg=searchdlg(self)

class searchdlg(QDialog): # Dialog for search data load 
    def __init__(self,parent):
        super().__init__()
        self.parent=parent
        self.ui = Ui_Dialog()
        self.ui.setupUi(self)
        self.result=self.parent.db.searchload()
        if self.result:
            for l in self.result :
                self.ui.listWidget.addItem(l[0]) 
        self.show() 

    def listDClicked(self,item):
        id=item.listWidget().row(item)
        self.parent.ui.lineEdit.setText( self.result[id][1])
        self.parent.ui.lineEdit_3.setText( self.result[id][2])

    def listSelect(self,item):
        id=item.listWidget().row(item)
        self.ui.label.setText(self.result[id][1])
        self.ui.label_2.setText(self.result[id][2])

    def delitem(self):
        self.parent.db.searchdell(self.ui.listWidget.currentItem().text())
        # print(self.ui.listWidget.currentItem().text())
```

- Scintilla_sql.py
```
    def searchload( self ): # search pattern
        conn = sqlite3.connect( self.db )
        c = conn.cursor()
        c.execute( 'select  *  from  spattern' )
        res=c.fetchall()
        c.close()
        conn.close()
        return res     # 結果を全て渡す、タプルのリスト
    def searchsave( self , lists ):
        conn = sqlite3.connect( self.db )
        c = conn.cursor()
        c.execute( "INSERT INTO spattern ( name , word , replace ) VALUES (?,?,?)" , lists )
        c.close()
        conn.commit()
        conn.close()
    def searchdell( self , key ):
        conn = sqlite3.connect( self.db )
        c = conn.cursor()
        c.execute( "DELETE FROM spattern WHERE name= ?" , (key,) )
        c.close()
        conn.commit()
        conn.close()
```      

190915-

検索条件保存

ダイアログ
ほぼ考えてたとおりに実装できたがダイアログの使い方がいまひとつ
このようにダイアログをQDialogの派生クラスとして作るとデザイナーで設定したスロットの収まりが良いのだが、これで正解なんだろうか?

class MainWindow(QMainWindow):
    def searchsave(self):
        text=QInputDialog.getText(self,r'( ´∀`)','set Name')
        if text[1]:
            self.db.searchsave((text[0] ,self.ui.lineEdit.text() , self.ui.lineEdit_3.text()))
    def searchload(self): # Show Dialog
        self.sdlg=searchdlg(self)

class searchdlg(QDialog): # Dialog for search data load 
    def __init__(self,parent):
        super().__init__()
        self.parent=parent
        self.ui = Ui_Dialog()
        self.ui.setupUi(self)
        self.result=self.parent.db.searchload()
        if self.result:
            for l in self.result :
                self.ui.listWidget.addItem(l[0]) 
        self.show() 

    def listDClicked(self,item):
        id=item.listWidget().row(item)
        self.parent.ui.lineEdit.setText( self.result[id][1])
        self.parent.ui.lineEdit_3.setText( self.result[id][2])

    def listSelect(self,item):
        id=item.listWidget().row(item)
        self.ui.label.setText(self.result[id][1])
        self.ui.label_2.setText(self.result[id][2])

    def delitem(self):
        self.parent.db.searchdell(self.ui.listWidget.currentItem().text())
        # print(self.ui.listWidget.currentItem().text())
  • Scintilla_sql.py
    def searchload( self ): # search pattern
        conn = sqlite3.connect( self.db )
        c = conn.cursor()
        c.execute( 'select  *  from  spattern' )
        res=c.fetchall()
        c.close()
        conn.close()
        return res     # 結果を全て渡す、タプルのリスト
    def searchsave( self , lists ):
        conn = sqlite3.connect( self.db )
        c = conn.cursor()
        c.execute( "INSERT INTO spattern ( name , word , replace ) VALUES (?,?,?)" , lists )
        c.close()
        conn.commit()
        conn.close()
    def searchdell( self , key ):
        conn = sqlite3.connect( self.db )
        c = conn.cursor()
        c.execute( "DELETE FROM spattern WHERE name= ?" , (key,) )
        c.close()
        conn.commit()
        conn.close()