import sqlite3
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication,QWidget,QMainWindow
from PyQt5.QtGui import QStandardItemModel , QStandardItem
import ui
class MainWindow(QMainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.ui = ui.Ui_MainWindow()
self.ui.setupUi(self)
self.db=<pass>
line='select artist ,album,title ,path from musics order by artist ,album,title'
self.model=self.sqlexecute(line)
self.ui.treeView.setModel(self.model)
self.ui.actionBye.triggered.connect(self.actionbye)
self.ui.actionchange.triggered.connect(self.actionchange)
self.ui.actionclear.triggered.connect(self.actionclear)
self.ui.actionreload.triggered.connect(self.actionreload)
def actionchange(self):
model2 = QStandardItemModel()
for i in range(3):
parent1 = QStandardItem('Family {}. Some long status text for sp'.format(i))
model2.appendRow(parent1)
for j in range(3):
child1 = QStandardItem('Child {}'.format(i*3+j))
child2 = QStandardItem('row: {}, col: {}'.format(i, j+1))
child3 = QStandardItem('row: {}, col: {}'.format(i, j+2))
parent1.appendRow([child1, child2, child3])
self.ui.treeView.setModel(model2)
def actionreload(self):
pass
def sqlexecute( self, line ):
conn = sqlite3.connect( self.db )
c = conn.cursor()
item=['×','×']
tree=[None,None,None,None]
model = QStandardItemModel()
for l in c.execute(line) :
if item[0] != l[0] :
tree[1] = QStandardItem(l[0])
model.appendRow(tree[1])
item[0]=l[0]
if item[1] != l[1] :
tree[2] = QStandardItem( l[1] )
tree[1].appendRow(tree[2])
item[1]=l[1]
tree[3]=QStandardItem(l[2]) , QStandardItem(l[3])
tree[2].appendRow(tree[3])
c.close()
conn.close()
return model
def actionbye(self):
quit()
def actionclear(self):
self.model.clear()
def search(self,e):
item=self.ui.lineEdit.text()
temp=self.ui.treeView.model()
if item=='' :
if temp == self.model :
pass
else:
self.ui.treeView.setModel(self.model)
del temp
else :
item="'%"+item+"%'"
line='select artist ,album,title ,path from musics where \
artist like {} or path like {} or title like {}\
order by artist ,album,title'.format(item,item,item)
self.ui.treeView.setModel(self.sqlexecute(line))
if temp != self.model:
del temp
def treeClicked(self,e):
print(e.data())
print(e.siblingAtColumn(1).data())
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
main_window = MainWindow()
main_window.show()
sys.exit(app.exec_())