Files
kman/kmanapp.py
2020-06-05 14:44:24 +08:00

160 lines
5.1 KiB
Python

import sys
from PySide2.QtWidgets import QApplication
from PySide2.QtWidgets import QMainWindow
from PySide2.QtCore import (QCoreApplication, QDate, QDateTime, QMetaObject,
QObject, QPoint, QRect, QSize, QTime, QUrl, Qt)
from PySide2.QtGui import (QBrush, QColor, QConicalGradient, QCursor, QFont,
QFontDatabase, QIcon, QKeySequence, QLinearGradient, QPalette, QPainter,
QPixmap, QRadialGradient, QStandardItem, QStandardItemModel)
from PySide2.QtWidgets import *
from mainwindow import Ui_MainWindow
from kman import *
# import binary resource file(kmanapp_rc.py)
import kmanapp_rc
class kmanWindow(QMainWindow):
"""
def __init__(self, *args, **kwargs):
super(kmanWindow, self).__init__(*args, **kwargs)
"""
def __init__(self, parent=None):
super(kmanWindow, self).__init__(parent)
self.stat_str = 'status information'
self.search_str = ''
# create ui and initial it
ui = Ui_MainWindow()
ui.setupUi(self)
self.ui = ui
self.books = import_clips()
# connect action/toolbutton to slot functions
ui.actionimportkindle.triggered.connect(lambda: self.import_kindle(self.books))
ui.actionimportlocal.triggered.connect(lambda: self.import_local())
ui.actionconfig.triggered.connect(lambda: self.config())
ui.actionwords.triggered.connect(lambda: self.words())
ui.actionstatistic.triggered.connect(lambda: self.statistic())
ui.actionhomepage.triggered.connect(lambda: self.homepage())
ui.actionabout.triggered.connect(lambda: self.about())
ui.actionflush.triggered.connect(lambda: self.flush())
ui.searchComboBox.currentIndexChanged.connect(self.search_scope_change)
ui.searchToolButton.clicked.connect(self.search_button_clicked)
ui.treeView.clicked.connect(self.clicked_items)
self.add_ui_component()
#add_ui_component() ###! can not found this function
def add_ui_component(self):
self.ui.searchComboBox.addItems(['ALL','bookname','content','author'])
#inert test data xxxxxxxx
model = QStandardItemModel()
rootItem = model.invisibleRootItem()
idx = 0
for i in range(4):
idx += 1
item = QStandardItem('item {}'.format(idx))
rootItem.appendRow(item)
icon = QIcon()
icon.addFile(u":/icons/book_open_bookmark.png", QSize(), QIcon.Normal, QIcon.Off)
item.setIcon(icon)
if i==0:
parentItem = item
icon = QIcon()
icon.addFile(u":/icons/emblem_library.png", QSize(), QIcon.Normal, QIcon.Off)
item.setIcon(icon)
parentItem.appendRows([QStandardItem('append rows {}'.format(i+idx)) for i in range(5)])
if i==1:
parentItem = item
for i in range(5):
idx += 1
item = QStandardItem('type item {}'.format(i+idx))
#item.setEnabled(False)
item.setEditable(False)
icon = QIcon()
icon.addFile(u":/icons/register.png", QSize(), QIcon.Normal, QIcon.Off)
item.setIcon(icon)
parentItem.appendRow(item)
if i==3:
parentItem = item
for i in range(5):
idx += 1
item = QStandardItem('another item {}'.format(i+idx))
#item.setEnabled(False)
item.setEditable(False)
icon = QIcon()
icon.addFile(u":/icons/book_open.png", QSize(), QIcon.Normal, QIcon.Off)
item.setIcon(icon)
parentItem.appendRow(item)
self.ui.treeView.setModel(model)
def clicked_items(self):
print( 'call clicked_items()' )
def search_button_clicked(self):
print( 'call search_button_clicked()' )
def search_scope_change(self,t):
p = {0:'ALL',1:'TITLE',2:'AUTHOR',3:'CONTENT'}
s = self.ui.searchLineEdit.text()
#print(self.books)
#print(search_clip(self.books,s,'ALL',p[t]))
print('call search_scope_change()')
# define slot functions
def import_kindle(self,bks):
print("call slot importkindle()")
print(bks)
pass
def import_local(self):
print("call slot importlocal()")
pass
def config(self):
print("call slot config()")
pass
def words(self):
print("call slot words()")
pass
def statistic(self):
print("call slot statistic()")
pass
def homepage(self):
print("call slot homepage()")
pass
def about(self):
print("call slot about()")
pass
def flush(self):
print("call slot flush()")
pass
def messageBox(self, showInfo):
box = QMessageBox.about(self, 'Kindle Management', showInfo)
if __name__ == "__main__":
import sys
from PySide2.QtWidgets import QApplication, QLabel
app = QApplication(sys.argv)
kmw = kmanWindow()
kmw.resize(900, 600)
kmw.show()
app.exec_()