kindle manager

This commit is contained in:
gavin
2020-06-05 14:44:24 +08:00
parent d62b909849
commit c0bfa52fc3
16 changed files with 1027 additions and 424 deletions

BIN
.DS_Store vendored

Binary file not shown.

View File

@@ -59,15 +59,22 @@ b['1']['2'] = {'3':1} # OK
- design GUI with qdesigner ![kman GUI](https://i.loli.net/2020/06/03/wlFETiSCPmx29hI.png) - design GUI with qdesigner ![kman GUI](https://i.loli.net/2020/06/03/wlFETiSCPmx29hI.png)
- define toolbar action's slots - define toolbar action's slots
## 1.0.4 (20200604)
### feature
- refactoring kman.py
- creat constant class for all constant
- creat config dialog to do some constant configuration
- creat xman class for all clipping manipulation
- design config dialog & statusbar information![statusbar & config dialog](https://i.loli.net/2020/06/04/zg4W6M1bUPch2vB.jpg)
## learn lesson
- generate ui source(.py) use pyqtuic will 'import kmanapp\_rc',
so I need to use resouce file(.qrc) to manage resouce(icons),
and generator rcc binnay file, must kmanapp\_rc.py
command: pyside2-rcc -binary kmanapp.qrc -o kmanapp\_rc.py
# feature plan # feature plan
## 20200528 ## 20200528
- first abstract from kindle hard / local directory for different OS - first abstract from kindle hard / local directory for different OS
- add GUI use QT **done** - add GUI use QT **done**
## 20200604
- refactoring kman.py
- creat constant class for all constant
- creat config dialog to do some constant configuration
- creat xman class for all clipping manipulation
- design config dialog & statusbar information![statusbar & config dialog](https://i.loli.net/2020/06/04/zg4W6M1bUPch2vB.jpg)

2
cui
View File

@@ -1,2 +1,2 @@
pyuic mainwindow.ui -o mainwindow.py pyuic mainwindow.ui -o mainwindow.py
pyside2-rcc -binary kman.qrc -o kman.rcc pyside2-rcc -binary kmanapp.qrc -o kmanapp_rc.py

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

BIN
icons/book3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

BIN
icons/book_open.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 631 B

BIN
icons/emblem_library.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
icons/register.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 660 B

View File

@@ -2,12 +2,20 @@
import sys import sys
from PySide2.QtWidgets import QApplication from PySide2.QtWidgets import QApplication
from PySide2.QtWidgets import QMainWindow from PySide2.QtWidgets import QMainWindow
from PySide2.QtGui import QStandardItemModel
from PySide2.QtGui import QStandardItem 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 mainwindow import Ui_MainWindow
from kman import * from kman import *
# import binary resource file(kmanapp_rc.py)
import kmanapp_rc
class kmanWindow(QMainWindow): class kmanWindow(QMainWindow):
""" """
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
@@ -38,7 +46,7 @@ class kmanWindow(QMainWindow):
ui.searchComboBox.currentIndexChanged.connect(self.search_scope_change) ui.searchComboBox.currentIndexChanged.connect(self.search_scope_change)
ui.searchToolButton.clicked.connect(self.search_button_clicked) ui.searchToolButton.clicked.connect(self.search_button_clicked)
ui.treeView.activated.connect(self.activated_items) ui.treeView.clicked.connect(self.clicked_items)
self.add_ui_component() self.add_ui_component()
#add_ui_component() ###! can not found this function #add_ui_component() ###! can not found this function
@@ -49,25 +57,48 @@ class kmanWindow(QMainWindow):
#inert test data xxxxxxxx #inert test data xxxxxxxx
model = QStandardItemModel() model = QStandardItemModel()
rootItem = model.invisibleRootItem() rootItem = model.invisibleRootItem()
idx = 0
for i in range(4): for i in range(4):
item = QStandardItem('item {}'.format(i)) idx += 1
item = QStandardItem('item {}'.format(idx))
rootItem.appendRow(item) rootItem.appendRow(item)
icon = QIcon()
icon.addFile(u":/icons/book_open_bookmark.png", QSize(), QIcon.Normal, QIcon.Off)
item.setIcon(icon)
if i==0: if i==0:
parentItem = item parentItem = item
parentItem.appendRows([QStandardItem('append rows {}'.format(i+10)) for i in range(5)]) 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: if i==3:
parentItem = item parentItem = item
for i in range(5): for i in range(5):
item = QStandardItem('another item {}'.format(i+4)) idx += 1
item = QStandardItem('another item {}'.format(i+idx))
#item.setEnabled(False) #item.setEnabled(False)
item.setEditable(False) item.setEditable(False)
icon = QIcon()
icon.addFile(u":/icons/book_open.png", QSize(), QIcon.Normal, QIcon.Off)
item.setIcon(icon)
parentItem.appendRow(item) parentItem.appendRow(item)
self.ui.treeView.setModel(model) self.ui.treeView.setModel(model)
def activated_items(self): def clicked_items(self):
print( 'call activated_items()' ) print( 'call clicked_items()' )
def search_button_clicked(self): def search_button_clicked(self):
print( 'call search_button_clicked()' ) print( 'call search_button_clicked()' )
@@ -116,7 +147,6 @@ class kmanWindow(QMainWindow):
def messageBox(self, showInfo): def messageBox(self, showInfo):
box = QMessageBox.about(self, 'Kindle Management', showInfo) box = QMessageBox.about(self, 'Kindle Management', showInfo)
if __name__ == "__main__": if __name__ == "__main__":
import sys import sys
from PySide2.QtWidgets import QApplication, QLabel from PySide2.QtWidgets import QApplication, QLabel

View File

@@ -1,3 +1,3 @@
{ {
"files": ["kmanapp.py","kman.qrc","mainwindow.ui"] "files": ["kmanapp.py","mainwindow.ui","kmanapp.qrc"]
} }

View File

@@ -40,5 +40,11 @@
<file>icons/refresh.png</file> <file>icons/refresh.png</file>
<file>icons/statistics.png</file> <file>icons/statistics.png</file>
<file>mainwindow.ui</file> <file>mainwindow.ui</file>
<file>icons/booksicon.png</file>
<file>icons/book_open.png</file>
<file>icons/book_open_bookmark.png</file>
<file>icons/emblem_library.png</file>
<file>icons/book3.png</file>
<file>icons/register.png</file>
</qresource> </qresource>
</RCC> </RCC>

File diff suppressed because it is too large Load Diff

View File

@@ -15,6 +15,7 @@ from PySide2.QtGui import (QBrush, QColor, QConicalGradient, QCursor, QFont,
QPixmap, QRadialGradient) QPixmap, QRadialGradient)
from PySide2.QtWidgets import * from PySide2.QtWidgets import *
import kmanapp_rc
class Ui_MainWindow(object): class Ui_MainWindow(object):
def setupUi(self, MainWindow): def setupUi(self, MainWindow):
@@ -24,47 +25,47 @@ class Ui_MainWindow(object):
self.actionimportlocal = QAction(MainWindow) self.actionimportlocal = QAction(MainWindow)
self.actionimportlocal.setObjectName(u"actionimportlocal") self.actionimportlocal.setObjectName(u"actionimportlocal")
icon = QIcon() icon = QIcon()
icon.addFile(u"icons/downr.png", QSize(), QIcon.Normal, QIcon.Off) icon.addFile(u":/icons/downr.png", QSize(), QIcon.Normal, QIcon.Off)
self.actionimportlocal.setIcon(icon) self.actionimportlocal.setIcon(icon)
self.actionimportkindle = QAction(MainWindow) self.actionimportkindle = QAction(MainWindow)
self.actionimportkindle.setObjectName(u"actionimportkindle") self.actionimportkindle.setObjectName(u"actionimportkindle")
icon1 = QIcon() icon1 = QIcon()
icon1.addFile(u"icons/down.png", QSize(), QIcon.Normal, QIcon.Off) icon1.addFile(u":/icons/down.png", QSize(), QIcon.Normal, QIcon.Off)
self.actionimportkindle.setIcon(icon1) self.actionimportkindle.setIcon(icon1)
self.actionconfig = QAction(MainWindow) self.actionconfig = QAction(MainWindow)
self.actionconfig.setObjectName(u"actionconfig") self.actionconfig.setObjectName(u"actionconfig")
icon2 = QIcon() icon2 = QIcon()
icon2.addFile(u"icons/config.png", QSize(), QIcon.Normal, QIcon.Off) icon2.addFile(u":/icons/config.png", QSize(), QIcon.Normal, QIcon.Off)
self.actionconfig.setIcon(icon2) self.actionconfig.setIcon(icon2)
self.actionflush = QAction(MainWindow) self.actionflush = QAction(MainWindow)
self.actionflush.setObjectName(u"actionflush") self.actionflush.setObjectName(u"actionflush")
icon3 = QIcon() icon3 = QIcon()
icon3.addFile(u"icons/refresh.png", QSize(), QIcon.Normal, QIcon.Off) icon3.addFile(u":/icons/refresh.png", QSize(), QIcon.Normal, QIcon.Off)
self.actionflush.setIcon(icon3) self.actionflush.setIcon(icon3)
self.actionwords = QAction(MainWindow) self.actionwords = QAction(MainWindow)
self.actionwords.setObjectName(u"actionwords") self.actionwords.setObjectName(u"actionwords")
icon4 = QIcon() icon4 = QIcon()
icon4.addFile(u"icons/books.png", QSize(), QIcon.Normal, QIcon.Off) icon4.addFile(u":/icons/books.png", QSize(), QIcon.Normal, QIcon.Off)
self.actionwords.setIcon(icon4) self.actionwords.setIcon(icon4)
self.actionstatistic = QAction(MainWindow) self.actionstatistic = QAction(MainWindow)
self.actionstatistic.setObjectName(u"actionstatistic") self.actionstatistic.setObjectName(u"actionstatistic")
icon5 = QIcon() icon5 = QIcon()
icon5.addFile(u"icons/statistics.png", QSize(), QIcon.Normal, QIcon.Off) icon5.addFile(u":/icons/statistics.png", QSize(), QIcon.Normal, QIcon.Off)
self.actionstatistic.setIcon(icon5) self.actionstatistic.setIcon(icon5)
self.actionhomepage = QAction(MainWindow) self.actionhomepage = QAction(MainWindow)
self.actionhomepage.setObjectName(u"actionhomepage") self.actionhomepage.setObjectName(u"actionhomepage")
icon6 = QIcon() icon6 = QIcon()
icon6.addFile(u"icons/home.png", QSize(), QIcon.Normal, QIcon.Off) icon6.addFile(u":/icons/home.png", QSize(), QIcon.Normal, QIcon.Off)
self.actionhomepage.setIcon(icon6) self.actionhomepage.setIcon(icon6)
self.actionabout = QAction(MainWindow) self.actionabout = QAction(MainWindow)
self.actionabout.setObjectName(u"actionabout") self.actionabout.setObjectName(u"actionabout")
icon7 = QIcon() icon7 = QIcon()
icon7.addFile(u"icons/question.png", QSize(), QIcon.Normal, QIcon.Off) icon7.addFile(u":/icons/question.png", QSize(), QIcon.Normal, QIcon.Off)
self.actionabout.setIcon(icon7) self.actionabout.setIcon(icon7)
self.actionsearch = QAction(MainWindow) self.actionsearch = QAction(MainWindow)
self.actionsearch.setObjectName(u"actionsearch") self.actionsearch.setObjectName(u"actionsearch")
icon8 = QIcon() icon8 = QIcon()
icon8.addFile(u"icons/Pixadex.png", QSize(), QIcon.Normal, QIcon.Off) icon8.addFile(u":/icons/Pixadex.png", QSize(), QIcon.Normal, QIcon.Off)
self.actionsearch.setIcon(icon8) self.actionsearch.setIcon(icon8)
self.centralwidget = QWidget(MainWindow) self.centralwidget = QWidget(MainWindow)
self.centralwidget.setObjectName(u"centralwidget") self.centralwidget.setObjectName(u"centralwidget")
@@ -90,7 +91,7 @@ class Ui_MainWindow(object):
self.searchToolButton = QToolButton(self.centralwidget) self.searchToolButton = QToolButton(self.centralwidget)
self.searchToolButton.setObjectName(u"searchToolButton") self.searchToolButton.setObjectName(u"searchToolButton")
icon9 = QIcon() icon9 = QIcon()
icon9.addFile(u"icons/search.jpeg", QSize(), QIcon.Normal, QIcon.Off) icon9.addFile(u":/icons/search.jpeg", QSize(), QIcon.Normal, QIcon.Off)
self.searchToolButton.setIcon(icon9) self.searchToolButton.setIcon(icon9)
self.horizontalLayout.addWidget(self.searchToolButton) self.horizontalLayout.addWidget(self.searchToolButton)

View File

@@ -44,8 +44,8 @@
<string>...</string> <string>...</string>
</property> </property>
<property name="icon"> <property name="icon">
<iconset> <iconset resource="kmanapp.qrc">
<normaloff>icons/search.jpeg</normaloff>icons/search.jpeg</iconset> <normaloff>:/icons/search.jpeg</normaloff>:/icons/search.jpeg</iconset>
</property> </property>
</widget> </widget>
</item> </item>
@@ -137,8 +137,8 @@
</widget> </widget>
<action name="actionimportlocal"> <action name="actionimportlocal">
<property name="icon"> <property name="icon">
<iconset> <iconset resource="kmanapp.qrc">
<normaloff>icons/downr.png</normaloff>icons/downr.png</iconset> <normaloff>:/icons/downr.png</normaloff>:/icons/downr.png</iconset>
</property> </property>
<property name="text"> <property name="text">
<string>importlocal</string> <string>importlocal</string>
@@ -149,8 +149,8 @@
</action> </action>
<action name="actionimportkindle"> <action name="actionimportkindle">
<property name="icon"> <property name="icon">
<iconset> <iconset resource="kmanapp.qrc">
<normaloff>icons/down.png</normaloff>icons/down.png</iconset> <normaloff>:/icons/down.png</normaloff>:/icons/down.png</iconset>
</property> </property>
<property name="text"> <property name="text">
<string>importkindle</string> <string>importkindle</string>
@@ -161,8 +161,8 @@
</action> </action>
<action name="actionconfig"> <action name="actionconfig">
<property name="icon"> <property name="icon">
<iconset> <iconset resource="kmanapp.qrc">
<normaloff>icons/config.png</normaloff>icons/config.png</iconset> <normaloff>:/icons/config.png</normaloff>:/icons/config.png</iconset>
</property> </property>
<property name="text"> <property name="text">
<string>config</string> <string>config</string>
@@ -173,8 +173,8 @@
</action> </action>
<action name="actionflush"> <action name="actionflush">
<property name="icon"> <property name="icon">
<iconset> <iconset resource="kmanapp.qrc">
<normaloff>icons/refresh.png</normaloff>icons/refresh.png</iconset> <normaloff>:/icons/refresh.png</normaloff>:/icons/refresh.png</iconset>
</property> </property>
<property name="text"> <property name="text">
<string>refresh</string> <string>refresh</string>
@@ -185,8 +185,8 @@
</action> </action>
<action name="actionwords"> <action name="actionwords">
<property name="icon"> <property name="icon">
<iconset> <iconset resource="kmanapp.qrc">
<normaloff>icons/books.png</normaloff>icons/books.png</iconset> <normaloff>:/icons/books.png</normaloff>:/icons/books.png</iconset>
</property> </property>
<property name="text"> <property name="text">
<string>words</string> <string>words</string>
@@ -197,8 +197,8 @@
</action> </action>
<action name="actionstatistic"> <action name="actionstatistic">
<property name="icon"> <property name="icon">
<iconset> <iconset resource="kmanapp.qrc">
<normaloff>icons/statistics.png</normaloff>icons/statistics.png</iconset> <normaloff>:/icons/statistics.png</normaloff>:/icons/statistics.png</iconset>
</property> </property>
<property name="text"> <property name="text">
<string>statistic</string> <string>statistic</string>
@@ -209,8 +209,8 @@
</action> </action>
<action name="actionhomepage"> <action name="actionhomepage">
<property name="icon"> <property name="icon">
<iconset> <iconset resource="kmanapp.qrc">
<normaloff>icons/home.png</normaloff>icons/home.png</iconset> <normaloff>:/icons/home.png</normaloff>:/icons/home.png</iconset>
</property> </property>
<property name="text"> <property name="text">
<string>homepage</string> <string>homepage</string>
@@ -221,8 +221,8 @@
</action> </action>
<action name="actionabout"> <action name="actionabout">
<property name="icon"> <property name="icon">
<iconset> <iconset resource="kmanapp.qrc">
<normaloff>icons/question.png</normaloff>icons/question.png</iconset> <normaloff>:/icons/question.png</normaloff>:/icons/question.png</iconset>
</property> </property>
<property name="text"> <property name="text">
<string>about</string> <string>about</string>
@@ -233,8 +233,8 @@
</action> </action>
<action name="actionsearch"> <action name="actionsearch">
<property name="icon"> <property name="icon">
<iconset> <iconset resource="kmanapp.qrc">
<normaloff>icons/Pixadex.png</normaloff>icons/Pixadex.png</iconset> <normaloff>:/icons/Pixadex.png</normaloff>:/icons/Pixadex.png</iconset>
</property> </property>
<property name="text"> <property name="text">
<string>search</string> <string>search</string>
@@ -244,6 +244,8 @@
</property> </property>
</action> </action>
</widget> </widget>
<resources/> <resources>
<include location="kmanapp.qrc"/>
</resources>
<connections/> <connections/>
</ui> </ui>

View File

@@ -1,249 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>774</width>
<height>410</height>
</rect>
</property>
<property name="windowTitle">
<string>Kindle Management</string>
</property>
<widget class="QWidget" name="centralwidget">
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="searchLabel">
<property name="text">
<string>Search</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="searchLineEdit">
<property name="placeholderText">
<string>可按书名、作者、内容搜索笔记</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="searchComboBox">
<property name="currentText">
<string/>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="searchToolButton">
<property name="text">
<string>...</string>
</property>
<property name="icon">
<iconset>
<normaloff>icons/search.jpeg</normaloff>icons/search.jpeg</iconset>
</property>
</widget>
</item>
</layout>
</item>
<item row="1" column="0">
<widget class="QSplitter" name="splitter_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<widget class="QTreeView" name="treeView">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>400</width>
<height>16777215</height>
</size>
</property>
</widget>
<widget class="QSplitter" name="splitter">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<widget class="QTableView" name="tableView">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
<widget class="QTextEdit" name="textEdit">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>1</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>400</height>
</size>
</property>
</widget>
</widget>
</widget>
</item>
</layout>
</widget>
<widget class="QStatusBar" name="statusbar"/>
<widget class="QMenuBar" name="menuBar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>774</width>
<height>22</height>
</rect>
</property>
</widget>
<widget class="QToolBar" name="toolBar">
<property name="windowTitle">
<string>toolBar</string>
</property>
<attribute name="toolBarArea">
<enum>TopToolBarArea</enum>
</attribute>
<attribute name="toolBarBreak">
<bool>false</bool>
</attribute>
<addaction name="actionimportkindle"/>
<addaction name="actionimportlocal"/>
<addaction name="separator"/>
<addaction name="actionwords"/>
<addaction name="actionstatistic"/>
<addaction name="separator"/>
<addaction name="actionconfig"/>
<addaction name="separator"/>
<addaction name="actionhomepage"/>
<addaction name="actionabout"/>
<addaction name="separator"/>
<addaction name="actionflush"/>
</widget>
<action name="actionimportlocal">
<property name="icon">
<iconset>
<normaloff>icons/downr.png</normaloff>icons/downr.png</iconset>
</property>
<property name="text">
<string>importlocal</string>
</property>
<property name="toolTip">
<string>import clipping file from local clipping file</string>
</property>
</action>
<action name="actionimportkindle">
<property name="icon">
<iconset>
<normaloff>icons/down.png</normaloff>icons/down.png</iconset>
</property>
<property name="text">
<string>importkindle</string>
</property>
<property name="toolTip">
<string>import clipping file from kindle</string>
</property>
</action>
<action name="actionconfig">
<property name="icon">
<iconset>
<normaloff>icons/config.png</normaloff>icons/config.png</iconset>
</property>
<property name="text">
<string>config</string>
</property>
<property name="toolTip">
<string>configuration</string>
</property>
</action>
<action name="actionflush">
<property name="icon">
<iconset>
<normaloff>icons/refresh.png</normaloff>icons/refresh.png</iconset>
</property>
<property name="text">
<string>refresh</string>
</property>
<property name="toolTip">
<string>refresh import file/quick import from kindle</string>
</property>
</action>
<action name="actionwords">
<property name="icon">
<iconset>
<normaloff>icons/books.png</normaloff>icons/books.png</iconset>
</property>
<property name="text">
<string>words</string>
</property>
<property name="toolTip">
<string>words</string>
</property>
</action>
<action name="actionstatistic">
<property name="icon">
<iconset>
<normaloff>icons/statistics.png</normaloff>icons/statistics.png</iconset>
</property>
<property name="text">
<string>statistic</string>
</property>
<property name="toolTip">
<string>statistics reading habbit</string>
</property>
</action>
<action name="actionhomepage">
<property name="icon">
<iconset>
<normaloff>icons/home.png</normaloff>icons/home.png</iconset>
</property>
<property name="text">
<string>homepage</string>
</property>
<property name="toolTip">
<string>redirect to my homepage</string>
</property>
</action>
<action name="actionabout">
<property name="icon">
<iconset>
<normaloff>icons/question.png</normaloff>icons/question.png</iconset>
</property>
<property name="text">
<string>about</string>
</property>
<property name="toolTip">
<string>open about dialog</string>
</property>
</action>
<action name="actionsearch">
<property name="icon">
<iconset>
<normaloff>icons/Pixadex.png</normaloff>icons/Pixadex.png</iconset>
</property>
<property name="text">
<string>search</string>
</property>
<property name="toolTip">
<string>search note</string>
</property>
</action>
</widget>
<resources/>
<connections/>
</ui>