Merge pull request #21 from 625781186/master

下拉菜单
This commit is contained in:
ヽoo悾絔℅o。 2018-07-07 17:16:04 +08:00 committed by GitHub
commit 655e631e5b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
180 changed files with 41081 additions and 2 deletions

View file

@ -43,8 +43,9 @@
- [1.30 左侧选项卡](左侧选项卡/)
- [1.40 探测窗口和放大截图](探测窗口和放大截图/)
- [1.41 消息对话框倒计时关闭](消息对话框倒计时关闭/)
- 1.42 悬浮下拉菜单
- [1. tableWidget形式](partner_625781186/5.hoverMenu)
### [2.QGraphicsView练习](QGraphicsView练习/)
- [2.1 世界地图](QGraphicsView练习/世界地图)
- [2.2 添加QWidget](QGraphicsView练习/添加QWidget.py)
@ -66,12 +67,24 @@
- [4.9 水波纹进度条](界面美化/水波纹进度条)
- [4.10 QSlider美化](界面美化/QSlider美化)
### [5.动画特效](动画特效/)
- [5.1 淡入淡出](动画特效/淡入淡出.py)
### [6.QML](partner_625781186/QML_QtQuick_PY)
- [python_QML调用基础](partner_625781186/QML_QtQuick_PY/python_QML调用基础)
- QWidget窗体中嵌入qml界面
- [QDialog中嵌入qml窗体并缩放](partner_625781186/QML_QtQuick_PY/QDialog中嵌入qml窗体并缩放)
- [QQmlApplicationEngine之qml嵌入qtwidget_qt5.8以上](partner_625781186/QML_QtQuick_PY/QQmlApplicationEngine之qml嵌入qtwidget_qt5.8以上)
# QQ群
- [PyQt & PySide](https://jq.qq.com/?_wv=1027&k=50LWvn9)
- [PyQt学习互助](https://jq.qq.com/?_wv=1027&k=5QVVEdF)
- [PyQt5小组](https://jq.qq.com/?_wv=1027&k=5cI3oRz)
# [Donate-打赏](Donate/)

View file

@ -0,0 +1,215 @@
# -*- coding: utf-8 -*-
'''
description: 抽象类模块
Created on 2018年7月7日
email: 625781186@qq.com
'''
from PyQt5 import QtGui, QtWidgets, QtCore
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
import traceback, sip
class SingeleWidget(QWidget):
'''
菜单条的每个框
'''
#1
def __init__(self, parent=None):
'''
_hideFlag__Button 0 表明没有显示弹窗1表示显示了弹窗
'''
super(SingeleWidget, self).__init__(parent)
self._hideFlag__Button = 0
self.m_menu = QWidget()
self.setProperty("WID", "isTrue")
self.setAttribute(Qt.WA_StyledBackground, True)
print("W实例化")
# self.setMaximumWidth(80)
def _creatMenu(self, L_Name, parent):
'''
Main.py中被调用把LX类实例化
'''
# self.m_menu = L1(parent)
print(L_Name, parent)
self.m_menu = L_Name(parent)
def enterEvent(self, e):
'''鼠标移入label后 _hideFlag__Button=1表明显示了弹窗。'''
#设置菜单窗体的宽度
self.m_menu.setMinimumWidth(self.width())
self.m_menu.setMaximumWidth(self.width())
#我靠!
a0 = self.mapToGlobal( QPoint( self.parent().x() , self.height()) )
self.m_menu.move(a0)
#设置table外容器的宽度
if self.m_menu.tableWidget.rowCount()!=0:
table = self.m_menu.tableWidget
height = table.rowCount()*30
table.parent().setMinimumHeight(height)
table.parent().setMaximumHeight(height)
# table.setMinimumHeight(height)
# table.setMaximumHeight(height)
self.m_menu.show()
#表明显示了弹窗
self._hideFlag__Button = 1
def leaveEvent(self, e):
'''
离开时判断是否显示了窗体80ms后发射到_jugement去检测
'''
if self._hideFlag__Button==1: #显示了窗体
QTimer.singleShot(80, self._jugement)
def _jugement(self):
'''
离开上面窗体之后80ms, 1进入旁边的菜单框2进入弹出的菜单
'''
if self.m_menu._hideFlag__Menu!=1:
self.m_menu.hide()
self.m_menu.close()
self._hideFlag__Button=0
else:
pass
#========================================================
class BaseMenuWidget(QWidget):
#2
'''
下拉菜单的基类 被LX继承父类在18L 实现
'''
def __init__(self, parent=None):
'''
_hideFlag__Menu: 0时隐藏1时显示
'''
super(BaseMenuWidget, self).__init__(parent)
#无边框,隐藏任务栏;
self.setWindowFlags( Qt.FramelessWindowHint|Qt.Tool|Qt.Widget)
self.setupUi(self)
self._hideFlag__Menu = 0
print("L实例化")
def enterEvent(self, e):
#表明进入了弹窗
self._hideFlag__Menu=1
def leaveEvent(self, e):
self._hideFlag__Menu=0
self.hide()
for i in self.children():
if isinstance(i, BaseTable):#判断对象是否是tablewiget, 是则隐藏选中item颜色
i.clearSelection()
def _showSomething(self, **kwgs):
MW = self.parent()
if MW.objectName()=="MainWindow":
try:
# MW.Buttom_Vbox.setParent(None)#这是个严重的问题如果用这个函数会造成78L无法成功
_parent=MW.Buttom_Vbox.parent()#获取下面窗体对象的指针
# ! 目前的安排是离开当前页则释放对象 , 要求页面数据不需要保留才可以。
for obj in _parent.children():
print(obj)
sip.delete(obj)
MW.Buttom_Vbox = QtWidgets.QVBoxLayout(_parent)
MW.Buttom_Vbox.setContentsMargins(0, 0, 0, 0)
MW.Buttom_Vbox.setSpacing(0)
MW.Buttom_Vbox.setObjectName("Buttom_Vbox")
except:
showERROR()
# elif msg==QMessageBox.No:
# pass
# else:
# showERROR()
def _deleteSomething(self):
pass
#====================================================
class BaseButton(QPushButton):
#1
'''
主菜单的按钮的样式
'''
def __init__(self, parent=None):
super(BaseButton, self).__init__(parent)
# self.setMinimumWidth(50)
# self.setMaximumWidth(80)
self.setMaximumWidth(80)
self.setMinimumHeight(self.width())#保证是个正方形
self.setFocusPolicy(Qt.NoFocus)#无焦点,防止背景卡色
self.setFlat(True)#无凸起阴影
self.clicked.connect(self._todo)
self.png = QLabel(self)
print("B实例化")
def _todo(self, *args, **kwgs):
'''
每个按钮要重新实现的功能函数
'''
pass
def _createLabel(self, path):
'''
path主菜单图标的路径
'''
self.png.resize(self.size())
self.png_pixmap = QPixmap(path)
self.png.setPixmap(self.png_pixmap)
self.png.setScaledContents(True)
pass
def resizeEvent(self, e):
self.setMinimumHeight(self.width())
self.png.resize(self.size())
#==================================================
class BaseTable(QTableWidget):
#3
'''
下拉菜单中Table的样式
'''
def __init__(self, parent=None):
super(BaseTable, self).__init__(parent)
self.horizontalHeader().setSectionResizeMode(3)#列宽设置
self.horizontalHeader().setStretchLastSection(True); #充满列宽
self.verticalHeader().setSectionResizeMode(1)#行高设置
self.verticalHeader().setStretchLastSection(True); #充满行高
self.setEditTriggers(QAbstractItemView.NoEditTriggers); #只读
self.itemClicked.connect(self.parent()._showSomething)#Go 66L;
#关闭滑动条
self.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
self.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
print("T实例化")
def showERROR():
errmsg = traceback.format_exc()
QMessageBox.warning(QWidget(), '请确认', errmsg,
QMessageBox.Ok)

View file

@ -0,0 +1,14 @@
# -*- coding: utf-8 -*-
'''
读取CSS用模块
'''
class CommonHelper :
def __init__(self ) :
pass
@staticmethod
def readQss( style):
with open( style , 'r') as f:
return f.read()

View file

@ -0,0 +1,268 @@
<!DOCTYPE html>
<html><head>
<title>5.hoverMenu.BaseElement</title>
<meta charset="UTF-8">
<style>
body {
background: #EDECE6;
margin: 0em 1em 10em 1em;
color: black;
}
h1 { color: white; background: #85774A; }
h2 { color: white; background: #85774A; }
h3 { color: white; background: #9D936E; }
h4 { color: white; background: #9D936E; }
a { color: #BA6D36; }
</style>
</head>
<body><a NAME="top" ID="top"></a>
<h1>5.hoverMenu.BaseElement</h1>
<p>
description: &#25277;&#35937;&#31867;&#27169;&#22359;
</p><p>
Created on 2018&#24180;7&#26376;7&#26085;
</p><p>
email: 625781186@qq.com
</p>
<h3>Global Attributes</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Classes</h3>
<table>
<tr>
<td><a href="#BaseButton">BaseButton</a></td>
<td></td>
</tr><tr>
<td><a href="#BaseMenuWidget">BaseMenuWidget</a></td>
<td></td>
</tr><tr>
<td><a href="#BaseTable">BaseTable</a></td>
<td></td>
</tr><tr>
<td><a href="#SingeleWidget">SingeleWidget</a></td>
<td>&#33756;&#21333;&#26465;&#30340;&#27599;&#20010;&#26694;&#12290;</td>
</tr>
</table>
<h3>Functions</h3>
<table>
<tr>
<td><a href="#showERROR">showERROR</a></td>
<td></td>
</tr>
</table>
<hr /><hr />
<a NAME="BaseButton" ID="BaseButton"></a>
<h2>BaseButton</h2>
<h3>Derived from</h3>
QPushButton
<h3>Class Attributes</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Class Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Methods</h3>
<table>
<tr>
<td><a href="#BaseButton.__init__">BaseButton</a></td>
<td></td>
</tr><tr>
<td><a href="#BaseButton._createLabel">_createLabel</a></td>
<td>path&#65306;&#20027;&#33756;&#21333;&#22270;&#26631;&#30340;&#36335;&#24452;&#12290;</td>
</tr><tr>
<td><a href="#BaseButton._todo">_todo</a></td>
<td>&#27599;&#20010;&#25353;&#38062;&#35201;&#37325;&#26032;&#23454;&#29616;&#30340;&#21151;&#33021;&#20989;&#25968;&#12290;</td>
</tr><tr>
<td><a href="#BaseButton.resizeEvent">resizeEvent</a></td>
<td></td>
</tr>
</table>
<h3>Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="BaseButton.__init__" ID="BaseButton.__init__"></a>
<h4>BaseButton (Constructor)</h4>
<b>BaseButton</b>(<i>parent=None</i>)
<a NAME="BaseButton._createLabel" ID="BaseButton._createLabel"></a>
<h4>BaseButton._createLabel</h4>
<b>_createLabel</b>(<i>path</i>)
<p>
path&#65306;&#20027;&#33756;&#21333;&#22270;&#26631;&#30340;&#36335;&#24452;&#12290;
</p><a NAME="BaseButton._todo" ID="BaseButton._todo"></a>
<h4>BaseButton._todo</h4>
<b>_todo</b>(<i>*args, **kwgs</i>)
<p>
&#27599;&#20010;&#25353;&#38062;&#35201;&#37325;&#26032;&#23454;&#29616;&#30340;&#21151;&#33021;&#20989;&#25968;&#12290;
</p><a NAME="BaseButton.resizeEvent" ID="BaseButton.resizeEvent"></a>
<h4>BaseButton.resizeEvent</h4>
<b>resizeEvent</b>(<i>e</i>)
<div align="right"><a href="#top">Up</a></div>
<hr /><hr />
<a NAME="BaseMenuWidget" ID="BaseMenuWidget"></a>
<h2>BaseMenuWidget</h2>
<h3>Derived from</h3>
QWidget
<h3>Class Attributes</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Class Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Methods</h3>
<table>
<tr>
<td><a href="#BaseMenuWidget.__init__">BaseMenuWidget</a></td>
<td>_hideFlag__Menu: 0&#26102;&#38544;&#34255;&#65292;1&#26102;&#26174;&#31034;&#65307;</td>
</tr><tr>
<td><a href="#BaseMenuWidget._deleteSomething">_deleteSomething</a></td>
<td></td>
</tr><tr>
<td><a href="#BaseMenuWidget._showSomething">_showSomething</a></td>
<td></td>
</tr><tr>
<td><a href="#BaseMenuWidget.enterEvent">enterEvent</a></td>
<td></td>
</tr><tr>
<td><a href="#BaseMenuWidget.leaveEvent">leaveEvent</a></td>
<td></td>
</tr>
</table>
<h3>Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="BaseMenuWidget.__init__" ID="BaseMenuWidget.__init__"></a>
<h4>BaseMenuWidget (Constructor)</h4>
<b>BaseMenuWidget</b>(<i>parent=None</i>)
<p>
_hideFlag__Menu: 0&#26102;&#38544;&#34255;&#65292;1&#26102;&#26174;&#31034;&#65307;
</p><a NAME="BaseMenuWidget._deleteSomething" ID="BaseMenuWidget._deleteSomething"></a>
<h4>BaseMenuWidget._deleteSomething</h4>
<b>_deleteSomething</b>(<i></i>)
<a NAME="BaseMenuWidget._showSomething" ID="BaseMenuWidget._showSomething"></a>
<h4>BaseMenuWidget._showSomething</h4>
<b>_showSomething</b>(<i>**kwgs</i>)
<a NAME="BaseMenuWidget.enterEvent" ID="BaseMenuWidget.enterEvent"></a>
<h4>BaseMenuWidget.enterEvent</h4>
<b>enterEvent</b>(<i>e</i>)
<a NAME="BaseMenuWidget.leaveEvent" ID="BaseMenuWidget.leaveEvent"></a>
<h4>BaseMenuWidget.leaveEvent</h4>
<b>leaveEvent</b>(<i>e</i>)
<div align="right"><a href="#top">Up</a></div>
<hr /><hr />
<a NAME="BaseTable" ID="BaseTable"></a>
<h2>BaseTable</h2>
<h3>Derived from</h3>
QTableWidget
<h3>Class Attributes</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Class Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Methods</h3>
<table>
<tr>
<td><a href="#BaseTable.__init__">BaseTable</a></td>
<td></td>
</tr>
</table>
<h3>Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="BaseTable.__init__" ID="BaseTable.__init__"></a>
<h4>BaseTable (Constructor)</h4>
<b>BaseTable</b>(<i>parent=None</i>)
<div align="right"><a href="#top">Up</a></div>
<hr /><hr />
<a NAME="SingeleWidget" ID="SingeleWidget"></a>
<h2>SingeleWidget</h2>
<p>
&#33756;&#21333;&#26465;&#30340;&#27599;&#20010;&#26694;&#12290;
</p>
<h3>Derived from</h3>
QWidget
<h3>Class Attributes</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Class Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Methods</h3>
<table>
<tr>
<td><a href="#SingeleWidget.__init__">SingeleWidget</a></td>
<td>_hideFlag__Button&#65306; 0 &#34920;&#26126;&#27809;&#26377;&#26174;&#31034;&#24377;&#31383;&#65307;1&#34920;&#31034;&#26174;&#31034;&#20102;&#24377;&#31383;&#12290;</td>
</tr><tr>
<td><a href="#SingeleWidget._creatMenu">_creatMenu</a></td>
<td>Main.py&#20013;&#34987;&#35843;&#29992;&#12290;&#25226;LX&#31867;&#23454;&#20363;&#21270;&#12290;</td>
</tr><tr>
<td><a href="#SingeleWidget._jugement">_jugement</a></td>
<td>&#31163;&#24320;&#19978;&#38754;&#31383;&#20307;&#20043;&#21518;80ms, 1&#65306;&#36827;&#20837;&#26049;&#36793;&#30340;&#33756;&#21333;&#26694;&#65307;2&#65306;&#36827;&#20837;&#24377;&#20986;&#30340;&#33756;&#21333;&#12290;</td>
</tr><tr>
<td><a href="#SingeleWidget.enterEvent">enterEvent</a></td>
<td>&#40736;&#26631;&#31227;&#20837;label&#21518; &#65292; _hideFlag__Button=1&#65292;&#34920;&#26126;&#26174;&#31034;&#20102;&#24377;&#31383;&#12290;</td>
</tr><tr>
<td><a href="#SingeleWidget.leaveEvent">leaveEvent</a></td>
<td>&#31163;&#24320;&#26102;&#21028;&#26029;&#26159;&#21542;&#26174;&#31034;&#20102;&#31383;&#20307;&#65292;80ms&#21518;&#21457;&#23556;&#21040;_jugement&#21435;&#26816;&#27979;&#12290;</td>
</tr>
</table>
<h3>Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="SingeleWidget.__init__" ID="SingeleWidget.__init__"></a>
<h4>SingeleWidget (Constructor)</h4>
<b>SingeleWidget</b>(<i>parent=None</i>)
<p>
_hideFlag__Button&#65306; 0 &#34920;&#26126;&#27809;&#26377;&#26174;&#31034;&#24377;&#31383;&#65307;1&#34920;&#31034;&#26174;&#31034;&#20102;&#24377;&#31383;&#12290;
</p><a NAME="SingeleWidget._creatMenu" ID="SingeleWidget._creatMenu"></a>
<h4>SingeleWidget._creatMenu</h4>
<b>_creatMenu</b>(<i>L_Name, parent</i>)
<p>
Main.py&#20013;&#34987;&#35843;&#29992;&#12290;&#25226;LX&#31867;&#23454;&#20363;&#21270;&#12290;
</p><a NAME="SingeleWidget._jugement" ID="SingeleWidget._jugement"></a>
<h4>SingeleWidget._jugement</h4>
<b>_jugement</b>(<i></i>)
<p>
&#31163;&#24320;&#19978;&#38754;&#31383;&#20307;&#20043;&#21518;80ms, 1&#65306;&#36827;&#20837;&#26049;&#36793;&#30340;&#33756;&#21333;&#26694;&#65307;2&#65306;&#36827;&#20837;&#24377;&#20986;&#30340;&#33756;&#21333;&#12290;
</p><a NAME="SingeleWidget.enterEvent" ID="SingeleWidget.enterEvent"></a>
<h4>SingeleWidget.enterEvent</h4>
<b>enterEvent</b>(<i>e</i>)
<p>
&#40736;&#26631;&#31227;&#20837;label&#21518; &#65292; _hideFlag__Button=1&#65292;&#34920;&#26126;&#26174;&#31034;&#20102;&#24377;&#31383;&#12290;
</p><a NAME="SingeleWidget.leaveEvent" ID="SingeleWidget.leaveEvent"></a>
<h4>SingeleWidget.leaveEvent</h4>
<b>leaveEvent</b>(<i>e</i>)
<p>
&#31163;&#24320;&#26102;&#21028;&#26029;&#26159;&#21542;&#26174;&#31034;&#20102;&#31383;&#20307;&#65292;80ms&#21518;&#21457;&#23556;&#21040;_jugement&#21435;&#26816;&#27979;&#12290;
</p>
<div align="right"><a href="#top">Up</a></div>
<hr /><hr />
<a NAME="showERROR" ID="showERROR"></a>
<h2>showERROR</h2>
<b>showERROR</b>(<i></i>)
<div align="right"><a href="#top">Up</a></div>
<hr />
</body></html>

View file

@ -0,0 +1,252 @@
<!DOCTYPE html>
<html><head>
</head>
<body><a NAME="top" ID="top"></a>
<h1>5.hoverMenu.BaseElement</h1>
<p>
description: &#25277;&#35937;&#31867;&#27169;&#22359;
</p><p>
Created on 2018&#24180;7&#26376;7&#26085;
</p><p>
email: 625781186@qq.com
</p>
<h3>Global Attributes</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Classes</h3>
<table>
<tr>
<td><a href="#BaseButton">BaseButton</a></td>
<td></td>
</tr><tr>
<td><a href="#BaseMenuWidget">BaseMenuWidget</a></td>
<td></td>
</tr><tr>
<td><a href="#BaseTable">BaseTable</a></td>
<td></td>
</tr><tr>
<td><a href="#SingeleWidget">SingeleWidget</a></td>
<td>&#33756;&#21333;&#26465;&#30340;&#27599;&#20010;&#26694;&#12290;</td>
</tr>
</table>
<h3>Functions</h3>
<table>
<tr>
<td><a href="#showERROR">showERROR</a></td>
<td></td>
</tr>
</table>
<hr /><hr />
<a NAME="BaseButton" ID="BaseButton"></a>
<h2>BaseButton</h2>
<h3>Derived from</h3>
QPushButton
<h3>Class Attributes</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Class Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Methods</h3>
<table>
<tr>
<td><a href="#BaseButton.__init__">BaseButton</a></td>
<td></td>
</tr><tr>
<td><a href="#BaseButton._createLabel">_createLabel</a></td>
<td>path&#65306;&#20027;&#33756;&#21333;&#22270;&#26631;&#30340;&#36335;&#24452;&#12290;</td>
</tr><tr>
<td><a href="#BaseButton._todo">_todo</a></td>
<td>&#27599;&#20010;&#25353;&#38062;&#35201;&#37325;&#26032;&#23454;&#29616;&#30340;&#21151;&#33021;&#20989;&#25968;&#12290;</td>
</tr><tr>
<td><a href="#BaseButton.resizeEvent">resizeEvent</a></td>
<td></td>
</tr>
</table>
<h3>Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="BaseButton.__init__" ID="BaseButton.__init__"></a>
<h4>BaseButton (Constructor)</h4>
<b>BaseButton</b>(<i>parent=None</i>)
<a NAME="BaseButton._createLabel" ID="BaseButton._createLabel"></a>
<h4>BaseButton._createLabel</h4>
<b>_createLabel</b>(<i>path</i>)
<p>
path&#65306;&#20027;&#33756;&#21333;&#22270;&#26631;&#30340;&#36335;&#24452;&#12290;
</p><a NAME="BaseButton._todo" ID="BaseButton._todo"></a>
<h4>BaseButton._todo</h4>
<b>_todo</b>(<i>*args, **kwgs</i>)
<p>
&#27599;&#20010;&#25353;&#38062;&#35201;&#37325;&#26032;&#23454;&#29616;&#30340;&#21151;&#33021;&#20989;&#25968;&#12290;
</p><a NAME="BaseButton.resizeEvent" ID="BaseButton.resizeEvent"></a>
<h4>BaseButton.resizeEvent</h4>
<b>resizeEvent</b>(<i>e</i>)
<div align="right"><a href="#top">Up</a></div>
<hr /><hr />
<a NAME="BaseMenuWidget" ID="BaseMenuWidget"></a>
<h2>BaseMenuWidget</h2>
<h3>Derived from</h3>
QWidget
<h3>Class Attributes</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Class Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Methods</h3>
<table>
<tr>
<td><a href="#BaseMenuWidget.__init__">BaseMenuWidget</a></td>
<td>_hideFlag__Menu: 0&#26102;&#38544;&#34255;&#65292;1&#26102;&#26174;&#31034;&#65307;</td>
</tr><tr>
<td><a href="#BaseMenuWidget._deleteSomething">_deleteSomething</a></td>
<td></td>
</tr><tr>
<td><a href="#BaseMenuWidget._showSomething">_showSomething</a></td>
<td></td>
</tr><tr>
<td><a href="#BaseMenuWidget.enterEvent">enterEvent</a></td>
<td></td>
</tr><tr>
<td><a href="#BaseMenuWidget.leaveEvent">leaveEvent</a></td>
<td></td>
</tr>
</table>
<h3>Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="BaseMenuWidget.__init__" ID="BaseMenuWidget.__init__"></a>
<h4>BaseMenuWidget (Constructor)</h4>
<b>BaseMenuWidget</b>(<i>parent=None</i>)
<p>
_hideFlag__Menu: 0&#26102;&#38544;&#34255;&#65292;1&#26102;&#26174;&#31034;&#65307;
</p><a NAME="BaseMenuWidget._deleteSomething" ID="BaseMenuWidget._deleteSomething"></a>
<h4>BaseMenuWidget._deleteSomething</h4>
<b>_deleteSomething</b>(<i></i>)
<a NAME="BaseMenuWidget._showSomething" ID="BaseMenuWidget._showSomething"></a>
<h4>BaseMenuWidget._showSomething</h4>
<b>_showSomething</b>(<i>**kwgs</i>)
<a NAME="BaseMenuWidget.enterEvent" ID="BaseMenuWidget.enterEvent"></a>
<h4>BaseMenuWidget.enterEvent</h4>
<b>enterEvent</b>(<i>e</i>)
<a NAME="BaseMenuWidget.leaveEvent" ID="BaseMenuWidget.leaveEvent"></a>
<h4>BaseMenuWidget.leaveEvent</h4>
<b>leaveEvent</b>(<i>e</i>)
<div align="right"><a href="#top">Up</a></div>
<hr /><hr />
<a NAME="BaseTable" ID="BaseTable"></a>
<h2>BaseTable</h2>
<h3>Derived from</h3>
QTableWidget
<h3>Class Attributes</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Class Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Methods</h3>
<table>
<tr>
<td><a href="#BaseTable.__init__">BaseTable</a></td>
<td></td>
</tr>
</table>
<h3>Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="BaseTable.__init__" ID="BaseTable.__init__"></a>
<h4>BaseTable (Constructor)</h4>
<b>BaseTable</b>(<i>parent=None</i>)
<div align="right"><a href="#top">Up</a></div>
<hr /><hr />
<a NAME="SingeleWidget" ID="SingeleWidget"></a>
<h2>SingeleWidget</h2>
<p>
&#33756;&#21333;&#26465;&#30340;&#27599;&#20010;&#26694;&#12290;
</p>
<h3>Derived from</h3>
QWidget
<h3>Class Attributes</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Class Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Methods</h3>
<table>
<tr>
<td><a href="#SingeleWidget.__init__">SingeleWidget</a></td>
<td>_hideFlag__Button&#65306; 0 &#34920;&#26126;&#27809;&#26377;&#26174;&#31034;&#24377;&#31383;&#65307;1&#34920;&#31034;&#26174;&#31034;&#20102;&#24377;&#31383;&#12290;</td>
</tr><tr>
<td><a href="#SingeleWidget._creatMenu">_creatMenu</a></td>
<td>Main.py&#20013;&#34987;&#35843;&#29992;&#12290;&#25226;LX&#31867;&#23454;&#20363;&#21270;&#12290;</td>
</tr><tr>
<td><a href="#SingeleWidget._jugement">_jugement</a></td>
<td>&#31163;&#24320;&#19978;&#38754;&#31383;&#20307;&#20043;&#21518;80ms, 1&#65306;&#36827;&#20837;&#26049;&#36793;&#30340;&#33756;&#21333;&#26694;&#65307;2&#65306;&#36827;&#20837;&#24377;&#20986;&#30340;&#33756;&#21333;&#12290;</td>
</tr><tr>
<td><a href="#SingeleWidget.enterEvent">enterEvent</a></td>
<td>&#40736;&#26631;&#31227;&#20837;label&#21518; &#65292; _hideFlag__Button=1&#65292;&#34920;&#26126;&#26174;&#31034;&#20102;&#24377;&#31383;&#12290;</td>
</tr><tr>
<td><a href="#SingeleWidget.leaveEvent">leaveEvent</a></td>
<td>&#31163;&#24320;&#26102;&#21028;&#26029;&#26159;&#21542;&#26174;&#31034;&#20102;&#31383;&#20307;&#65292;80ms&#21518;&#21457;&#23556;&#21040;_jugement&#21435;&#26816;&#27979;&#12290;</td>
</tr>
</table>
<h3>Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="SingeleWidget.__init__" ID="SingeleWidget.__init__"></a>
<h4>SingeleWidget (Constructor)</h4>
<b>SingeleWidget</b>(<i>parent=None</i>)
<p>
_hideFlag__Button&#65306; 0 &#34920;&#26126;&#27809;&#26377;&#26174;&#31034;&#24377;&#31383;&#65307;1&#34920;&#31034;&#26174;&#31034;&#20102;&#24377;&#31383;&#12290;
</p><a NAME="SingeleWidget._creatMenu" ID="SingeleWidget._creatMenu"></a>
<h4>SingeleWidget._creatMenu</h4>
<b>_creatMenu</b>(<i>L_Name, parent</i>)
<p>
Main.py&#20013;&#34987;&#35843;&#29992;&#12290;&#25226;LX&#31867;&#23454;&#20363;&#21270;&#12290;
</p><a NAME="SingeleWidget._jugement" ID="SingeleWidget._jugement"></a>
<h4>SingeleWidget._jugement</h4>
<b>_jugement</b>(<i></i>)
<p>
&#31163;&#24320;&#19978;&#38754;&#31383;&#20307;&#20043;&#21518;80ms, 1&#65306;&#36827;&#20837;&#26049;&#36793;&#30340;&#33756;&#21333;&#26694;&#65307;2&#65306;&#36827;&#20837;&#24377;&#20986;&#30340;&#33756;&#21333;&#12290;
</p><a NAME="SingeleWidget.enterEvent" ID="SingeleWidget.enterEvent"></a>
<h4>SingeleWidget.enterEvent</h4>
<b>enterEvent</b>(<i>e</i>)
<p>
&#40736;&#26631;&#31227;&#20837;label&#21518; &#65292; _hideFlag__Button=1&#65292;&#34920;&#26126;&#26174;&#31034;&#20102;&#24377;&#31383;&#12290;
</p><a NAME="SingeleWidget.leaveEvent" ID="SingeleWidget.leaveEvent"></a>
<h4>SingeleWidget.leaveEvent</h4>
<b>leaveEvent</b>(<i>e</i>)
<p>
&#31163;&#24320;&#26102;&#21028;&#26029;&#26159;&#21542;&#26174;&#31034;&#20102;&#31383;&#20307;&#65292;80ms&#21518;&#21457;&#23556;&#21040;_jugement&#21435;&#26816;&#27979;&#12290;
</p>
<div align="right"><a href="#top">Up</a></div>
<hr /><hr />
<a NAME="showERROR" ID="showERROR"></a>
<h2>showERROR</h2>
<b>showERROR</b>(<i></i>)
<div align="right"><a href="#top">Up</a></div>
<hr />
</body></html>

View file

@ -0,0 +1,78 @@
<!DOCTYPE html>
<html><head>
<title>5.hoverMenu.CommonHelper</title>
<meta charset="UTF-8">
<style>
body {
background: #EDECE6;
margin: 0em 1em 10em 1em;
color: black;
}
h1 { color: white; background: #85774A; }
h2 { color: white; background: #85774A; }
h3 { color: white; background: #9D936E; }
h4 { color: white; background: #9D936E; }
a { color: #BA6D36; }
</style>
</head>
<body><a NAME="top" ID="top"></a>
<h1>5.hoverMenu.CommonHelper</h1>
<p>
&#35835;&#21462;CSS&#29992;&#27169;&#22359;&#12290;
</p>
<h3>Global Attributes</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Classes</h3>
<table>
<tr>
<td><a href="#CommonHelper">CommonHelper</a></td>
<td></td>
</tr>
</table>
<h3>Functions</h3>
<table>
<tr><td>None</td></tr>
</table>
<hr /><hr />
<a NAME="CommonHelper" ID="CommonHelper"></a>
<h2>CommonHelper</h2>
<h3>Derived from</h3>
None
<h3>Class Attributes</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Class Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Methods</h3>
<table>
<tr>
<td><a href="#CommonHelper.__init__">CommonHelper</a></td>
<td></td>
</tr>
</table>
<h3>Static Methods</h3>
<table>
<tr>
<td><a href="#CommonHelper.readQss">readQss</a></td>
<td></td>
</tr>
</table>
<a NAME="CommonHelper.__init__" ID="CommonHelper.__init__"></a>
<h4>CommonHelper (Constructor)</h4>
<b>CommonHelper</b>(<i></i>)
<a NAME="CommonHelper.readQss" ID="CommonHelper.readQss"></a>
<h4>CommonHelper.readQss (static)</h4>
<b>readQss</b>(<i></i>)
<div align="right"><a href="#top">Up</a></div>
<hr />
</body></html>

View file

@ -0,0 +1,62 @@
<!DOCTYPE html>
<html><head>
</head>
<body><a NAME="top" ID="top"></a>
<h1>5.hoverMenu.CommonHelper</h1>
<p>
&#35835;&#21462;CSS&#29992;&#27169;&#22359;&#12290;
</p>
<h3>Global Attributes</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Classes</h3>
<table>
<tr>
<td><a href="#CommonHelper">CommonHelper</a></td>
<td></td>
</tr>
</table>
<h3>Functions</h3>
<table>
<tr><td>None</td></tr>
</table>
<hr /><hr />
<a NAME="CommonHelper" ID="CommonHelper"></a>
<h2>CommonHelper</h2>
<h3>Derived from</h3>
None
<h3>Class Attributes</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Class Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Methods</h3>
<table>
<tr>
<td><a href="#CommonHelper.__init__">CommonHelper</a></td>
<td></td>
</tr>
</table>
<h3>Static Methods</h3>
<table>
<tr>
<td><a href="#CommonHelper.readQss">readQss</a></td>
<td></td>
</tr>
</table>
<a NAME="CommonHelper.__init__" ID="CommonHelper.__init__"></a>
<h4>CommonHelper (Constructor)</h4>
<b>CommonHelper</b>(<i></i>)
<a NAME="CommonHelper.readQss" ID="CommonHelper.readQss"></a>
<h4>CommonHelper.readQss (static)</h4>
<b>readQss</b>(<i></i>)
<div align="right"><a href="#top">Up</a></div>
<hr />
</body></html>

View file

@ -0,0 +1,95 @@
<!DOCTYPE html>
<html><head>
<title>5.hoverMenu.Main</title>
<meta charset="UTF-8">
<style>
body {
background: #EDECE6;
margin: 0em 1em 10em 1em;
color: black;
}
h1 { color: white; background: #85774A; }
h2 { color: white; background: #85774A; }
h3 { color: white; background: #9D936E; }
h4 { color: white; background: #9D936E; }
a { color: #BA6D36; }
</style>
</head>
<body><a NAME="top" ID="top"></a>
<h1>5.hoverMenu.Main</h1>
<p>
&#20027;&#20989;&#25968;.
</p><p>
description: pyqt5&#24748;&#28014;&#19979;&#25289;&#33756;&#21333;
</p><p>
Created on 2018&#24180;7&#26376;7&#26085;
</p><p>
email: 625781186@qq.com
</p>
<h3>Global Attributes</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Classes</h3>
<table>
<tr>
<td><a href="#MainWindow">MainWindow</a></td>
<td>Class documentation goes here.</td>
</tr>
</table>
<h3>Functions</h3>
<table>
<tr><td>None</td></tr>
</table>
<hr /><hr />
<a NAME="MainWindow" ID="MainWindow"></a>
<h2>MainWindow</h2>
<p>
Class documentation goes here.
</p>
<h3>Derived from</h3>
QMainWindow, Ui_MainWindow
<h3>Class Attributes</h3>
<table>
<tr><td>app</td></tr><tr><td>qssStyle</td></tr><tr><td>styleFile</td></tr><tr><td>ui</td></tr>
</table>
<h3>Class Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Methods</h3>
<table>
<tr>
<td><a href="#MainWindow.__init__">MainWindow</a></td>
<td>Constructor</td>
</tr><tr>
<td><a href="#MainWindow.enterEvent">enterEvent</a></td>
<td>&#33258;&#23450;&#20041;&#26631;&#39064;&#26639;&#38656;&#35201;&#37325;&#32622;&#20809;&#26631;&#12290;</td>
</tr>
</table>
<h3>Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="MainWindow.__init__" ID="MainWindow.__init__"></a>
<h4>MainWindow (Constructor)</h4>
<b>MainWindow</b>(<i>parent=None</i>)
<p>
Constructor
</p><dl>
<dt><i>parent</i> (QWidget)</dt>
<dd>
reference to the parent widget
</dd>
</dl><a NAME="MainWindow.enterEvent" ID="MainWindow.enterEvent"></a>
<h4>MainWindow.enterEvent</h4>
<b>enterEvent</b>(<i>e</i>)
<p>
&#33258;&#23450;&#20041;&#26631;&#39064;&#26639;&#38656;&#35201;&#37325;&#32622;&#20809;&#26631;&#12290;
</p>
<div align="right"><a href="#top">Up</a></div>
<hr />
</body></html>

View file

@ -0,0 +1,79 @@
<!DOCTYPE html>
<html><head>
</head>
<body><a NAME="top" ID="top"></a>
<h1>5.hoverMenu.Main</h1>
<p>
&#20027;&#20989;&#25968;.
</p><p>
description: pyqt5&#24748;&#28014;&#19979;&#25289;&#33756;&#21333;
</p><p>
Created on 2018&#24180;7&#26376;7&#26085;
</p><p>
email: 625781186@qq.com
</p>
<h3>Global Attributes</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Classes</h3>
<table>
<tr>
<td><a href="#MainWindow">MainWindow</a></td>
<td>Class documentation goes here.</td>
</tr>
</table>
<h3>Functions</h3>
<table>
<tr><td>None</td></tr>
</table>
<hr /><hr />
<a NAME="MainWindow" ID="MainWindow"></a>
<h2>MainWindow</h2>
<p>
Class documentation goes here.
</p>
<h3>Derived from</h3>
QMainWindow, Ui_MainWindow
<h3>Class Attributes</h3>
<table>
<tr><td>app</td></tr><tr><td>qssStyle</td></tr><tr><td>styleFile</td></tr><tr><td>ui</td></tr>
</table>
<h3>Class Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Methods</h3>
<table>
<tr>
<td><a href="#MainWindow.__init__">MainWindow</a></td>
<td>Constructor</td>
</tr><tr>
<td><a href="#MainWindow.enterEvent">enterEvent</a></td>
<td>&#33258;&#23450;&#20041;&#26631;&#39064;&#26639;&#38656;&#35201;&#37325;&#32622;&#20809;&#26631;&#12290;</td>
</tr>
</table>
<h3>Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="MainWindow.__init__" ID="MainWindow.__init__"></a>
<h4>MainWindow (Constructor)</h4>
<b>MainWindow</b>(<i>parent=None</i>)
<p>
Constructor
</p><dl>
<dt><i>parent</i> (QWidget)</dt>
<dd>
reference to the parent widget
</dd>
</dl><a NAME="MainWindow.enterEvent" ID="MainWindow.enterEvent"></a>
<h4>MainWindow.enterEvent</h4>
<b>enterEvent</b>(<i>e</i>)
<p>
&#33258;&#23450;&#20041;&#26631;&#39064;&#26639;&#38656;&#35201;&#37325;&#32622;&#20809;&#26631;&#12290;
</p>
<div align="right"><a href="#top">Up</a></div>
<hr />
</body></html>

View file

@ -0,0 +1,358 @@
<!DOCTYPE html>
<html><head>
<title>5.hoverMenu.Menu</title>
<meta charset="UTF-8">
<style>
body {
background: #EDECE6;
margin: 0em 1em 10em 1em;
color: black;
}
h1 { color: white; background: #85774A; }
h2 { color: white; background: #85774A; }
h3 { color: white; background: #9D936E; }
h4 { color: white; background: #9D936E; }
a { color: #BA6D36; }
</style>
</head>
<body><a NAME="top" ID="top"></a>
<h1>5.hoverMenu.Menu</h1>
<p>
description: &#35201;&#22686;&#21152;&#33756;&#21333;&#26639;&#26102;&#65292;&#22312;&#36825;&#37324;&#28155;&#21152;&#12290;<br>
</p><p>
Created on 2018&#24180;7&#26376;7&#26085;
</p><p>
email: 625781186@qq.com
</p><p>
BX: &#20027;&#33756;&#21333;&#25353;&#38062;&#65307;<br>
LX&#65306;&#23376;&#33756;&#21333;&#25353;&#38062;-&#32487;&#25215;&#20102;UI&#31867;&#21644; &#38544;&#34255;&#22522;&#31867;&#65307;<br>
</p>
<h3>Global Attributes</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Classes</h3>
<table>
<tr>
<td><a href="#B1">B1</a></td>
<td></td>
</tr><tr>
<td><a href="#B2">B2</a></td>
<td></td>
</tr><tr>
<td><a href="#B3">B3</a></td>
<td></td>
</tr><tr>
<td><a href="#B4">B4</a></td>
<td></td>
</tr><tr>
<td><a href="#L1">L1</a></td>
<td></td>
</tr><tr>
<td><a href="#L2">L2</a></td>
<td></td>
</tr><tr>
<td><a href="#L3">L3</a></td>
<td></td>
</tr><tr>
<td><a href="#L4">L4</a></td>
<td></td>
</tr>
</table>
<h3>Functions</h3>
<table>
<tr><td>None</td></tr>
</table>
<hr /><hr />
<a NAME="B1" ID="B1"></a>
<h2>B1</h2>
<h3>Derived from</h3>
BaseButton
<h3>Class Attributes</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Class Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Methods</h3>
<table>
<tr>
<td><a href="#B1.__init__">B1</a></td>
<td></td>
</tr><tr>
<td><a href="#B1._todo">_todo</a></td>
<td></td>
</tr>
</table>
<h3>Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="B1.__init__" ID="B1.__init__"></a>
<h4>B1 (Constructor)</h4>
<b>B1</b>(<i>parent=None</i>)
<a NAME="B1._todo" ID="B1._todo"></a>
<h4>B1._todo</h4>
<b>_todo</b>(<i>*args, **kwgs</i>)
<div align="right"><a href="#top">Up</a></div>
<hr /><hr />
<a NAME="B2" ID="B2"></a>
<h2>B2</h2>
<h3>Derived from</h3>
BaseButton
<h3>Class Attributes</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Class Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Methods</h3>
<table>
<tr>
<td><a href="#B2.__init__">B2</a></td>
<td></td>
</tr><tr>
<td><a href="#B2._todo">_todo</a></td>
<td></td>
</tr>
</table>
<h3>Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="B2.__init__" ID="B2.__init__"></a>
<h4>B2 (Constructor)</h4>
<b>B2</b>(<i>parent=None</i>)
<a NAME="B2._todo" ID="B2._todo"></a>
<h4>B2._todo</h4>
<b>_todo</b>(<i>*args, **kwgs</i>)
<div align="right"><a href="#top">Up</a></div>
<hr /><hr />
<a NAME="B3" ID="B3"></a>
<h2>B3</h2>
<h3>Derived from</h3>
BaseButton
<h3>Class Attributes</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Class Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Methods</h3>
<table>
<tr>
<td><a href="#B3.__init__">B3</a></td>
<td></td>
</tr><tr>
<td><a href="#B3._todo">_todo</a></td>
<td></td>
</tr>
</table>
<h3>Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="B3.__init__" ID="B3.__init__"></a>
<h4>B3 (Constructor)</h4>
<b>B3</b>(<i>parent=None</i>)
<a NAME="B3._todo" ID="B3._todo"></a>
<h4>B3._todo</h4>
<b>_todo</b>(<i>*args, **kwgs</i>)
<div align="right"><a href="#top">Up</a></div>
<hr /><hr />
<a NAME="B4" ID="B4"></a>
<h2>B4</h2>
<h3>Derived from</h3>
BaseButton
<h3>Class Attributes</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Class Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Methods</h3>
<table>
<tr>
<td><a href="#B4.__init__">B4</a></td>
<td></td>
</tr><tr>
<td><a href="#B4._todo">_todo</a></td>
<td></td>
</tr>
</table>
<h3>Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="B4.__init__" ID="B4.__init__"></a>
<h4>B4 (Constructor)</h4>
<b>B4</b>(<i>parent=None</i>)
<a NAME="B4._todo" ID="B4._todo"></a>
<h4>B4._todo</h4>
<b>_todo</b>(<i>*args, **kwgs</i>)
<div align="right"><a href="#top">Up</a></div>
<hr /><hr />
<a NAME="L1" ID="L1"></a>
<h2>L1</h2>
<h3>Derived from</h3>
Ui_L1.Ui_Form, BaseMenuWidget
<h3>Class Attributes</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Class Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Methods</h3>
<table>
<tr>
<td><a href="#L1.__init__">L1</a></td>
<td></td>
</tr><tr>
<td><a href="#L1._showSomething">_showSomething</a></td>
<td></td>
</tr>
</table>
<h3>Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="L1.__init__" ID="L1.__init__"></a>
<h4>L1 (Constructor)</h4>
<b>L1</b>(<i>parent=None</i>)
<a NAME="L1._showSomething" ID="L1._showSomething"></a>
<h4>L1._showSomething</h4>
<b>_showSomething</b>(<i>item</i>)
<div align="right"><a href="#top">Up</a></div>
<hr /><hr />
<a NAME="L2" ID="L2"></a>
<h2>L2</h2>
<h3>Derived from</h3>
Ui_L2.Ui_Form, BaseMenuWidget
<h3>Class Attributes</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Class Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Methods</h3>
<table>
<tr>
<td><a href="#L2.__init__">L2</a></td>
<td></td>
</tr><tr>
<td><a href="#L2._showSomething">_showSomething</a></td>
<td></td>
</tr>
</table>
<h3>Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="L2.__init__" ID="L2.__init__"></a>
<h4>L2 (Constructor)</h4>
<b>L2</b>(<i>parent=None</i>)
<a NAME="L2._showSomething" ID="L2._showSomething"></a>
<h4>L2._showSomething</h4>
<b>_showSomething</b>(<i>item</i>)
<div align="right"><a href="#top">Up</a></div>
<hr /><hr />
<a NAME="L3" ID="L3"></a>
<h2>L3</h2>
<h3>Derived from</h3>
Ui_L3.Ui_Form, BaseMenuWidget
<h3>Class Attributes</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Class Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Methods</h3>
<table>
<tr>
<td><a href="#L3.__init__">L3</a></td>
<td></td>
</tr><tr>
<td><a href="#L3._showSomething">_showSomething</a></td>
<td></td>
</tr>
</table>
<h3>Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="L3.__init__" ID="L3.__init__"></a>
<h4>L3 (Constructor)</h4>
<b>L3</b>(<i>parent=None</i>)
<a NAME="L3._showSomething" ID="L3._showSomething"></a>
<h4>L3._showSomething</h4>
<b>_showSomething</b>(<i>item</i>)
<div align="right"><a href="#top">Up</a></div>
<hr /><hr />
<a NAME="L4" ID="L4"></a>
<h2>L4</h2>
<h3>Derived from</h3>
Ui_L4.Ui_Form, BaseMenuWidget
<h3>Class Attributes</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Class Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Methods</h3>
<table>
<tr>
<td><a href="#L4.__init__">L4</a></td>
<td></td>
</tr><tr>
<td><a href="#L4._showSomething">_showSomething</a></td>
<td></td>
</tr>
</table>
<h3>Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="L4.__init__" ID="L4.__init__"></a>
<h4>L4 (Constructor)</h4>
<b>L4</b>(<i>parent=None</i>)
<a NAME="L4._showSomething" ID="L4._showSomething"></a>
<h4>L4._showSomething</h4>
<b>_showSomething</b>(<i>item</i>)
<div align="right"><a href="#top">Up</a></div>
<hr />
</body></html>

View file

@ -0,0 +1,342 @@
<!DOCTYPE html>
<html><head>
</head>
<body><a NAME="top" ID="top"></a>
<h1>5.hoverMenu.Menu</h1>
<p>
description: &#35201;&#22686;&#21152;&#33756;&#21333;&#26639;&#26102;&#65292;&#22312;&#36825;&#37324;&#28155;&#21152;&#12290;<br>
</p><p>
Created on 2018&#24180;7&#26376;7&#26085;
</p><p>
email: 625781186@qq.com
</p><p>
BX: &#20027;&#33756;&#21333;&#25353;&#38062;&#65307;<br>
LX&#65306;&#23376;&#33756;&#21333;&#25353;&#38062;-&#32487;&#25215;&#20102;UI&#31867;&#21644; &#38544;&#34255;&#22522;&#31867;&#65307;<br>
</p>
<h3>Global Attributes</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Classes</h3>
<table>
<tr>
<td><a href="#B1">B1</a></td>
<td></td>
</tr><tr>
<td><a href="#B2">B2</a></td>
<td></td>
</tr><tr>
<td><a href="#B3">B3</a></td>
<td></td>
</tr><tr>
<td><a href="#B4">B4</a></td>
<td></td>
</tr><tr>
<td><a href="#L1">L1</a></td>
<td></td>
</tr><tr>
<td><a href="#L2">L2</a></td>
<td></td>
</tr><tr>
<td><a href="#L3">L3</a></td>
<td></td>
</tr><tr>
<td><a href="#L4">L4</a></td>
<td></td>
</tr>
</table>
<h3>Functions</h3>
<table>
<tr><td>None</td></tr>
</table>
<hr /><hr />
<a NAME="B1" ID="B1"></a>
<h2>B1</h2>
<h3>Derived from</h3>
BaseButton
<h3>Class Attributes</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Class Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Methods</h3>
<table>
<tr>
<td><a href="#B1.__init__">B1</a></td>
<td></td>
</tr><tr>
<td><a href="#B1._todo">_todo</a></td>
<td></td>
</tr>
</table>
<h3>Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="B1.__init__" ID="B1.__init__"></a>
<h4>B1 (Constructor)</h4>
<b>B1</b>(<i>parent=None</i>)
<a NAME="B1._todo" ID="B1._todo"></a>
<h4>B1._todo</h4>
<b>_todo</b>(<i>*args, **kwgs</i>)
<div align="right"><a href="#top">Up</a></div>
<hr /><hr />
<a NAME="B2" ID="B2"></a>
<h2>B2</h2>
<h3>Derived from</h3>
BaseButton
<h3>Class Attributes</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Class Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Methods</h3>
<table>
<tr>
<td><a href="#B2.__init__">B2</a></td>
<td></td>
</tr><tr>
<td><a href="#B2._todo">_todo</a></td>
<td></td>
</tr>
</table>
<h3>Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="B2.__init__" ID="B2.__init__"></a>
<h4>B2 (Constructor)</h4>
<b>B2</b>(<i>parent=None</i>)
<a NAME="B2._todo" ID="B2._todo"></a>
<h4>B2._todo</h4>
<b>_todo</b>(<i>*args, **kwgs</i>)
<div align="right"><a href="#top">Up</a></div>
<hr /><hr />
<a NAME="B3" ID="B3"></a>
<h2>B3</h2>
<h3>Derived from</h3>
BaseButton
<h3>Class Attributes</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Class Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Methods</h3>
<table>
<tr>
<td><a href="#B3.__init__">B3</a></td>
<td></td>
</tr><tr>
<td><a href="#B3._todo">_todo</a></td>
<td></td>
</tr>
</table>
<h3>Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="B3.__init__" ID="B3.__init__"></a>
<h4>B3 (Constructor)</h4>
<b>B3</b>(<i>parent=None</i>)
<a NAME="B3._todo" ID="B3._todo"></a>
<h4>B3._todo</h4>
<b>_todo</b>(<i>*args, **kwgs</i>)
<div align="right"><a href="#top">Up</a></div>
<hr /><hr />
<a NAME="B4" ID="B4"></a>
<h2>B4</h2>
<h3>Derived from</h3>
BaseButton
<h3>Class Attributes</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Class Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Methods</h3>
<table>
<tr>
<td><a href="#B4.__init__">B4</a></td>
<td></td>
</tr><tr>
<td><a href="#B4._todo">_todo</a></td>
<td></td>
</tr>
</table>
<h3>Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="B4.__init__" ID="B4.__init__"></a>
<h4>B4 (Constructor)</h4>
<b>B4</b>(<i>parent=None</i>)
<a NAME="B4._todo" ID="B4._todo"></a>
<h4>B4._todo</h4>
<b>_todo</b>(<i>*args, **kwgs</i>)
<div align="right"><a href="#top">Up</a></div>
<hr /><hr />
<a NAME="L1" ID="L1"></a>
<h2>L1</h2>
<h3>Derived from</h3>
Ui_L1.Ui_Form, BaseMenuWidget
<h3>Class Attributes</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Class Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Methods</h3>
<table>
<tr>
<td><a href="#L1.__init__">L1</a></td>
<td></td>
</tr><tr>
<td><a href="#L1._showSomething">_showSomething</a></td>
<td></td>
</tr>
</table>
<h3>Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="L1.__init__" ID="L1.__init__"></a>
<h4>L1 (Constructor)</h4>
<b>L1</b>(<i>parent=None</i>)
<a NAME="L1._showSomething" ID="L1._showSomething"></a>
<h4>L1._showSomething</h4>
<b>_showSomething</b>(<i>item</i>)
<div align="right"><a href="#top">Up</a></div>
<hr /><hr />
<a NAME="L2" ID="L2"></a>
<h2>L2</h2>
<h3>Derived from</h3>
Ui_L2.Ui_Form, BaseMenuWidget
<h3>Class Attributes</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Class Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Methods</h3>
<table>
<tr>
<td><a href="#L2.__init__">L2</a></td>
<td></td>
</tr><tr>
<td><a href="#L2._showSomething">_showSomething</a></td>
<td></td>
</tr>
</table>
<h3>Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="L2.__init__" ID="L2.__init__"></a>
<h4>L2 (Constructor)</h4>
<b>L2</b>(<i>parent=None</i>)
<a NAME="L2._showSomething" ID="L2._showSomething"></a>
<h4>L2._showSomething</h4>
<b>_showSomething</b>(<i>item</i>)
<div align="right"><a href="#top">Up</a></div>
<hr /><hr />
<a NAME="L3" ID="L3"></a>
<h2>L3</h2>
<h3>Derived from</h3>
Ui_L3.Ui_Form, BaseMenuWidget
<h3>Class Attributes</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Class Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Methods</h3>
<table>
<tr>
<td><a href="#L3.__init__">L3</a></td>
<td></td>
</tr><tr>
<td><a href="#L3._showSomething">_showSomething</a></td>
<td></td>
</tr>
</table>
<h3>Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="L3.__init__" ID="L3.__init__"></a>
<h4>L3 (Constructor)</h4>
<b>L3</b>(<i>parent=None</i>)
<a NAME="L3._showSomething" ID="L3._showSomething"></a>
<h4>L3._showSomething</h4>
<b>_showSomething</b>(<i>item</i>)
<div align="right"><a href="#top">Up</a></div>
<hr /><hr />
<a NAME="L4" ID="L4"></a>
<h2>L4</h2>
<h3>Derived from</h3>
Ui_L4.Ui_Form, BaseMenuWidget
<h3>Class Attributes</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Class Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<h3>Methods</h3>
<table>
<tr>
<td><a href="#L4.__init__">L4</a></td>
<td></td>
</tr><tr>
<td><a href="#L4._showSomething">_showSomething</a></td>
<td></td>
</tr>
</table>
<h3>Static Methods</h3>
<table>
<tr><td>None</td></tr>
</table>
<a NAME="L4.__init__" ID="L4.__init__"></a>
<h4>L4 (Constructor)</h4>
<b>L4</b>(<i>parent=None</i>)
<a NAME="L4._showSomething" ID="L4._showSomething"></a>
<h4>L4._showSomething</h4>
<b>_showSomething</b>(<i>item</i>)
<div align="right"><a href="#top">Up</a></div>
<hr />
</body></html>

View file

@ -0,0 +1,42 @@
<!DOCTYPE html>
<html><head>
<title>5.hoverMenu</title>
<meta charset="UTF-8">
<style>
body {
background: #EDECE6;
margin: 0em 1em 10em 1em;
color: black;
}
h1 { color: white; background: #85774A; }
h2 { color: white; background: #85774A; }
h3 { color: white; background: #9D936E; }
h4 { color: white; background: #9D936E; }
a { color: #BA6D36; }
</style>
</head>
<body>
<h1>5.hoverMenu</h1>
<h3>Modules</h3>
<table>
<tr>
<td><a href="5.hoverMenu.BaseElement.html">BaseElement</a></td>
<td>description: &#25277;&#35937;&#31867;&#27169;&#22359;</td>
</tr><tr>
<td><a href="5.hoverMenu.CommonHelper.html">CommonHelper</a></td>
<td>&#35835;&#21462;CSS&#29992;&#27169;&#22359;&#12290;</td>
</tr><tr>
<td><a href="5.hoverMenu.Main.html">Main</a></td>
<td>&#20027;&#20989;&#25968;.</td>
</tr><tr>
<td><a href="5.hoverMenu.Menu.html">Menu</a></td>
<td>description: &#35201;&#22686;&#21152;&#33756;&#21333;&#26639;&#26102;&#65292;&#22312;&#36825;&#37324;&#28155;&#21152;&#12290;<br></td>
</tr>
</table>
</body></html>

View file

@ -0,0 +1,26 @@
<!DOCTYPE html>
<html><head>
</head>
<body>
<h1>5.hoverMenu</h1>
<h3>Modules</h3>
<table>
<tr>
<td><a href="5.hoverMenu.BaseElement.md">BaseElement</a></td>
<td>description: &#25277;&#35937;&#31867;&#27169;&#22359;</td>
</tr><tr>
<td><a href="5.hoverMenu.CommonHelper.md">CommonHelper</a></td>
<td>&#35835;&#21462;CSS&#29992;&#27169;&#22359;&#12290;</td>
</tr><tr>
<td><a href="5.hoverMenu.Main.md">Main</a></td>
<td>&#20027;&#20989;&#25968;.</td>
</tr><tr>
<td><a href="5.hoverMenu.Menu.md">Menu</a></td>
<td>description: &#35201;&#22686;&#21152;&#33756;&#21333;&#26639;&#26102;&#65292;&#22312;&#36825;&#37324;&#28155;&#21152;&#12290;<br></td>
</tr>
</table>
</body></html>

View file

@ -0,0 +1,33 @@
<!DOCTYPE html>
<html><head>
<title>Table of contents</title>
<meta charset="UTF-8">
<style>
body {
background: #EDECE6;
margin: 0em 1em 10em 1em;
color: black;
}
h1 { color: white; background: #85774A; }
h2 { color: white; background: #85774A; }
h3 { color: white; background: #9D936E; }
h4 { color: white; background: #9D936E; }
a { color: #BA6D36; }
</style>
</head>
<body>
<h1>Table of contents</h1>
<h3>Packages</h3>
<table>
<tr>
<td><a href="index-5.hoverMenu.html">hoverMenu</a></td>
<td></td>
</tr>
</table>
</body></html>

View file

@ -0,0 +1,63 @@
# -*- coding: utf-8 -*-
"""
主函数.
description: pyqt5悬浮下拉菜单
Created on 2018年7月7日
email: 625781186@qq.com
"""
from PyQt5 import QtGui, QtWidgets, QtCore
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from Menu import *
from Ui_Main import Ui_MainWindow
#读取CSS用
from CommonHelper import CommonHelper
class MainWindow(QMainWindow, Ui_MainWindow):
"""
Class documentation goes here.
"""
def __init__(self, parent=None):
"""
Constructor
@param parent reference to the parent widget
@type QWidget
"""
super(MainWindow, self).__init__(parent)
self.setupUi(self)
self.showMaximized()
# W1->TestWidget 生成然后B->然后L->tablewidget
for i in range(1,10):
try:
txt='''self.W{x}._creatMenu(L{x}, self);
'''.format(x=i)
exec(txt)
except:
continue
def enterEvent(self, e):
'''自定义标题栏需要重置光标。'''
self.setCursor(Qt.ArrowCursor)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
ui = MainWindow()
styleFile = './style.css'
qssStyle = CommonHelper.readQss( styleFile )
ui.setStyleSheet( qssStyle )
ui.show()
sys.exit(app.exec_())

View file

@ -0,0 +1,471 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<author>Lin</author>
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>648</width>
<height>493</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<property name="styleSheet">
<string notr="true"> #MainWindow { border:none;}</string>
</property>
<widget class="QWidget" name="centralWidget">
<property name="styleSheet">
<string notr="true">#centralWidget {border:none;}</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QWidget" name="widget" native="true">
<property name="styleSheet">
<string notr="true">#widget {border:none;}</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_14">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QWidget" name="topWidget" native="true">
<property name="styleSheet">
<string notr="true">#widget{ border:none; }</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout" stretch="1,1,1,1,0,0">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="SingeleWidget" name="W1" native="true">
<layout class="QGridLayout" name="gridLayout">
<property name="leftMargin">
<number>9</number>
</property>
<property name="topMargin">
<number>9</number>
</property>
<property name="rightMargin">
<number>9</number>
</property>
<property name="bottomMargin">
<number>9</number>
</property>
<item row="0" column="1">
<widget class="B1" name="filemenu_storeData_3">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="label_15">
<property name="text">
<string>店铺数据</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="0" column="0">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Preferred</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>10</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="2">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Preferred</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>10</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<widget class="SingeleWidget" name="W2" native="true">
<layout class="QGridLayout" name="gridLayout_2">
<property name="leftMargin">
<number>9</number>
</property>
<property name="topMargin">
<number>9</number>
</property>
<property name="rightMargin">
<number>9</number>
</property>
<property name="bottomMargin">
<number>9</number>
</property>
<item row="1" column="1">
<widget class="QLabel" name="label_16">
<property name="text">
<string>竞品分析</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="B2" name="filemenu_competitiveProductAnalysis_3">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="0" column="0">
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Preferred</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>10</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="2">
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Preferred</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>10</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<widget class="SingeleWidget" name="W3" native="true">
<layout class="QGridLayout" name="gridLayout_4">
<property name="leftMargin">
<number>9</number>
</property>
<property name="topMargin">
<number>9</number>
</property>
<property name="rightMargin">
<number>9</number>
</property>
<property name="bottomMargin">
<number>9</number>
</property>
<item row="0" column="0">
<spacer name="horizontalSpacer_5">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Preferred</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>10</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="1">
<widget class="B3" name="filemenu_throughTrain_4">
<property name="autoFillBackground">
<bool>false</bool>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="label_19">
<property name="text">
<string>直通工具</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="0" column="2">
<spacer name="horizontalSpacer_6">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Preferred</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>10</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<widget class="SingeleWidget" name="W4" native="true">
<layout class="QGridLayout" name="gridLayout_5">
<property name="leftMargin">
<number>9</number>
</property>
<property name="topMargin">
<number>9</number>
</property>
<property name="rightMargin">
<number>9</number>
</property>
<property name="bottomMargin">
<number>9</number>
</property>
<item row="0" column="0">
<spacer name="horizontalSpacer_7">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Preferred</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>10</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="1">
<widget class="B4" name="filemenu_throughTrain_3">
<property name="autoFillBackground">
<bool>false</bool>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="label_14">
<property name="text">
<string>直通工具</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="0" column="2">
<spacer name="horizontalSpacer_8">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Preferred</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>10</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_19">
<item>
<widget class="QLabel" name="label_17">
<property name="text">
<string>个人中心</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_18">
<property name="text">
<string>退出登录</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="horizontalSpacer_9">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>25</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QWidget" name="buttomWidget" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QVBoxLayout" name="Buttom_Vbox">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
</layout>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<action name="action1">
<property name="text">
<string>1</string>
</property>
</action>
<action name="action2">
<property name="text">
<string>2</string>
</property>
</action>
</widget>
<layoutdefault spacing="2" margin="0"/>
<customwidgets>
<customwidget>
<class>B1</class>
<extends>QPushButton</extends>
<header>Menu</header>
</customwidget>
<customwidget>
<class>B2</class>
<extends>QPushButton</extends>
<header>Menu</header>
</customwidget>
<customwidget>
<class>B3</class>
<extends>QPushButton</extends>
<header>Menu</header>
</customwidget>
<customwidget>
<class>B4</class>
<extends>QPushButton</extends>
<header>Menu</header>
</customwidget>
<customwidget>
<class>SingeleWidget</class>
<extends>QWidget</extends>
<header>BaseElement</header>
<container>1</container>
</customwidget>
</customwidgets>
<resources>
<include location="tbqrc.qrc"/>
</resources>
<connections/>
<designerdata>
<property name="gridDeltaX">
<number>10</number>
</property>
<property name="gridDeltaY">
<number>10</number>
</property>
<property name="gridSnapX">
<bool>true</bool>
</property>
<property name="gridSnapY">
<bool>true</bool>
</property>
<property name="gridVisible">
<bool>true</bool>
</property>
</designerdata>
</ui>

View file

@ -0,0 +1,119 @@
# -*- coding: utf-8 -*-
'''
description: 要增加菜单栏时在这里添加<br>
Created on 2018年7月7日
email: 625781186@qq.com
BX: 主菜单按钮<br>
LX子菜单按钮-继承了UI类和 隐藏基类<br>
'''
from BaseElement import *
from UStoreData1 import Ui_L1
from UCompetitiveProduct2 import Ui_L2
from UMarketAnalysis3 import Ui_L3
from UThroughTrain4 import Ui_L4
#============================================= 店铺数据 =======================================
class B1( BaseButton):
def __init__(self, parent=None):
super(B1, self).__init__(parent)
self._createLabel(":/static/store_data.png")
def _todo(self, *args, **kwgs):
super(B1, self)._todo()
class L1( Ui_L1.Ui_Form, BaseMenuWidget):
def __init__(self, parent=None):
super(L1, self).__init__(parent)
def _showSomething(self, item):
super(L1, self)._showSomething()
MW = self.parent()#是MainWindow
if item.text()=="语音数据":
print(1) #功能未实现
#============================================= 竞品分析 =======================================
class B2(BaseButton):
def __init__(self, parent=None):
super(B2, self).__init__(parent)
self._createLabel(":/static/competitiveProductAnalysis.png")
def _todo(self, *args, **kwgs):
super(B2, self)._todo()
class L2(Ui_L2.Ui_Form, BaseMenuWidget):
def __init__(self, parent=None):
super(L2, self).__init__(parent)
def _showSomething(self, item):
super(L2, self)._showSomething()
MW = self.parent()#是MainWindow
if item.text()=="评价分析":
print(1) #功能未实现
elif item.text()=="SKU分析":
from UCompetitiveProduct2 import SKU_Widget
#切换窗体
self.sku_Widget = SKU_Widget.SKU_Form(MW.Buttom_Vbox.parent())
self.parent().Buttom_Vbox.addWidget(self.sku_Widget)
elif item.text()=="流量分析":
print(3) #功能未实现
#============================================= 市场分析 =======================================
class B3(BaseButton):
def __init__(self, parent=None):
super(B3, self).__init__(parent)
self._createLabel(":/static/search.png")
def _todo(self, *args, **kwgs):
super(B3, self)._todo()
class L3(Ui_L3.Ui_Form, BaseMenuWidget):
def __init__(self, parent=None):
super(L3, self).__init__(parent)
def _showSomething(self, item):
super(L3, self)._showSomething()
MW = self.parent()#是MainWindow
if item.text()=="类目趋势":
print(1)#功能未实现
elif item.text()=="属性趋势":
print(2)#功能未实现
elif item.text()=="品牌分析":
print(3)#功能未实现
#============================================= 直通车工具 =======================================
class B4(BaseButton):
def __init__(self, parent=None):
super(B4, self).__init__(parent)
self._createLabel(":/static/throughTrain.png")
def _todo(self, *args, **kwgs):
super(B4, self)._todo()
class L4(Ui_L4.Ui_Form,BaseMenuWidget):
def __init__(self, parent=None):
super(L4, self).__init__(parent)
def _showSomething(self, item):
super(L4, self)._showSomething()
MW = self.parent()#是MainWindow
if item.text()=="地域分析":
from UThroughTrain4 import GeographicAnalysis_Widget
self.geo_Widget = GeographicAnalysis_Widget.GeographicAnalysis_Form(MW.Buttom_Vbox.parent())
#切换窗体
MW.Buttom_Vbox.addWidget(self.geo_Widget)
self.geo_Widget.show()
elif item.text()=="实时数据":
print(2)#功能未实现
elif item.text()=="标签工具":
print(3)
#============================================= 智钻工具 =======================================

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 MiB

View file

@ -0,0 +1,103 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Form</class>
<widget class="QWidget" name="Form">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>113</width>
<height>119</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgb(85, 170, 255);</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="BaseTable" name="tableWidget">
<attribute name="horizontalHeaderVisible">
<bool>false</bool>
</attribute>
<attribute name="verticalHeaderVisible">
<bool>false</bool>
</attribute>
<attribute name="verticalHeaderHighlightSections">
<bool>true</bool>
</attribute>
<row>
<property name="text">
<string/>
</property>
</row>
<row>
<property name="text">
<string/>
</property>
</row>
<row>
<property name="text">
<string/>
</property>
</row>
<column>
<property name="text">
<string>新建列</string>
</property>
</column>
<item row="0" column="0">
<property name="text">
<string>评价分析</string>
</property>
<property name="textAlignment">
<set>AlignCenter</set>
</property>
</item>
<item row="1" column="0">
<property name="text">
<string>SKU分析</string>
</property>
<property name="textAlignment">
<set>AlignCenter</set>
</property>
</item>
<item row="2" column="0">
<property name="text">
<string>流量分析</string>
</property>
<property name="textAlignment">
<set>AlignCenter</set>
</property>
</item>
</widget>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>BaseTable</class>
<extends>QTableWidget</extends>
<header>BaseElement</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>

View file

@ -0,0 +1,35 @@
# -*- coding: utf-8 -*-
"""
SKU分析菜单的界面
"""
from PyQt5 import QtGui, QtWidgets, QtCore
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from .Ui_SKU_Widget import Ui_Form
class SKU_Form(QWidget, Ui_Form):
"""
Class documentation goes here.
"""
def __init__(self, parent=None):
"""
Constructor
@param parent reference to the parent widget
@type QWidget
"""
super(SKU_Form, self).__init__(parent)
self.setupUi(self)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
ui = SKU_Form()
ui.show()
sys.exit(app.exec_())

View file

@ -0,0 +1,34 @@
# -*- coding: utf-8 -*-
"""
SKU分析菜单的界面
"""
from PyQt5 import QtGui, QtWidgets, QtCore
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from .Ui_SKU_Widget import Ui_Form
class SKU_Form(QWidget, Ui_Form):
"""
Class documentation goes here.
"""
def __init__(self, parent=None):
"""
Constructor
@param parent reference to the parent widget
@type QWidget
"""
super(SKU_Form, self).__init__(parent)
self.setupUi(self)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
ui = SKU_Form()
ui.show()
sys.exit(app.exec_())

View file

@ -0,0 +1,93 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Form</class>
<widget class="QWidget" name="Form">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>578</width>
<height>340</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout" stretch="0,1">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="product_links">
<property name="text">
<string>宝贝链接:</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="product_links_textarea"/>
</item>
<item>
<widget class="QPushButton" name="start_collecting">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>开始采集</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="clear">
<property name="text">
<string>清空</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="export_data">
<property name="text">
<string>导出数据</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QSplitter" name="splitter">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<widget class="QTableWidget" name="productHeader">
<column>
<property name="text">
<string>序号</string>
</property>
</column>
<column>
<property name="text">
<string>SKU</string>
</property>
</column>
</widget>
<widget class="QTableWidget" name="productCountHeader">
<column>
<property name="text">
<string>序号</string>
</property>
</column>
<column>
<property name="text">
<string>数量</string>
</property>
</column>
</widget>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View file

@ -0,0 +1,74 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'D:\pyPro\hoverMenu\UCompetitiveProduct2\L2.ui'
#
# Created by: PyQt5 UI code generator 5.9
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(113, 119)
Form.setStyleSheet("background-color: rgb(85, 170, 255);")
self.verticalLayout = QtWidgets.QVBoxLayout(Form)
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
self.verticalLayout.setSpacing(0)
self.verticalLayout.setObjectName("verticalLayout")
self.tableWidget = BaseTable(Form)
self.tableWidget.setObjectName("tableWidget")
self.tableWidget.setColumnCount(1)
self.tableWidget.setRowCount(3)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setVerticalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setVerticalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setVerticalHeaderItem(2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
item.setTextAlignment(QtCore.Qt.AlignCenter)
self.tableWidget.setItem(0, 0, item)
item = QtWidgets.QTableWidgetItem()
item.setTextAlignment(QtCore.Qt.AlignCenter)
self.tableWidget.setItem(1, 0, item)
item = QtWidgets.QTableWidgetItem()
item.setTextAlignment(QtCore.Qt.AlignCenter)
self.tableWidget.setItem(2, 0, item)
self.tableWidget.horizontalHeader().setVisible(False)
self.tableWidget.verticalHeader().setVisible(False)
self.tableWidget.verticalHeader().setHighlightSections(True)
self.verticalLayout.addWidget(self.tableWidget)
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
item = self.tableWidget.horizontalHeaderItem(0)
item.setText(_translate("Form", "新建列"))
__sortingEnabled = self.tableWidget.isSortingEnabled()
self.tableWidget.setSortingEnabled(False)
item = self.tableWidget.item(0, 0)
item.setText(_translate("Form", "评价分析"))
item = self.tableWidget.item(1, 0)
item.setText(_translate("Form", "SKU分析"))
item = self.tableWidget.item(2, 0)
item.setText(_translate("Form", "流量分析"))
self.tableWidget.setSortingEnabled(__sortingEnabled)
from BaseElement import BaseTable
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Form = QtWidgets.QWidget()
ui = Ui_Form()
ui.setupUi(Form)
Form.show()
sys.exit(app.exec_())

View file

@ -0,0 +1,90 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'D:\pyPro\hoverMenu\UCompetitiveProduct2\SKU_Widget.ui'
#
# Created by: PyQt5 UI code generator 5.9
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(578, 340)
self.verticalLayout = QtWidgets.QVBoxLayout(Form)
self.verticalLayout.setObjectName("verticalLayout")
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.product_links = QtWidgets.QLabel(Form)
self.product_links.setObjectName("product_links")
self.horizontalLayout.addWidget(self.product_links)
self.product_links_textarea = QtWidgets.QLineEdit(Form)
self.product_links_textarea.setObjectName("product_links_textarea")
self.horizontalLayout.addWidget(self.product_links_textarea)
self.start_collecting = QtWidgets.QPushButton(Form)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.start_collecting.sizePolicy().hasHeightForWidth())
self.start_collecting.setSizePolicy(sizePolicy)
self.start_collecting.setObjectName("start_collecting")
self.horizontalLayout.addWidget(self.start_collecting)
self.clear = QtWidgets.QPushButton(Form)
self.clear.setObjectName("clear")
self.horizontalLayout.addWidget(self.clear)
self.export_data = QtWidgets.QPushButton(Form)
self.export_data.setObjectName("export_data")
self.horizontalLayout.addWidget(self.export_data)
self.verticalLayout.addLayout(self.horizontalLayout)
self.splitter = QtWidgets.QSplitter(Form)
self.splitter.setOrientation(QtCore.Qt.Horizontal)
self.splitter.setObjectName("splitter")
self.productHeader = QtWidgets.QTableWidget(self.splitter)
self.productHeader.setObjectName("productHeader")
self.productHeader.setColumnCount(2)
self.productHeader.setRowCount(0)
item = QtWidgets.QTableWidgetItem()
self.productHeader.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.productHeader.setHorizontalHeaderItem(1, item)
self.productCountHeader = QtWidgets.QTableWidget(self.splitter)
self.productCountHeader.setObjectName("productCountHeader")
self.productCountHeader.setColumnCount(2)
self.productCountHeader.setRowCount(0)
item = QtWidgets.QTableWidgetItem()
self.productCountHeader.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.productCountHeader.setHorizontalHeaderItem(1, item)
self.verticalLayout.addWidget(self.splitter)
self.verticalLayout.setStretch(1, 1)
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.product_links.setText(_translate("Form", "宝贝链接:"))
self.start_collecting.setText(_translate("Form", "开始采集"))
self.clear.setText(_translate("Form", "清空"))
self.export_data.setText(_translate("Form", "导出数据"))
item = self.productHeader.horizontalHeaderItem(0)
item.setText(_translate("Form", "序号"))
item = self.productHeader.horizontalHeaderItem(1)
item.setText(_translate("Form", "SKU"))
item = self.productCountHeader.horizontalHeaderItem(0)
item.setText(_translate("Form", "序号"))
item = self.productCountHeader.horizontalHeaderItem(1)
item.setText(_translate("Form", "数量"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Form = QtWidgets.QWidget()
ui = Ui_Form()
ui.setupUi(Form)
Form.show()
sys.exit(app.exec_())

View file

@ -0,0 +1,103 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Form</class>
<widget class="QWidget" name="Form">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>113</width>
<height>119</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgb(85, 170, 255);</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="BaseTable" name="tableWidget">
<attribute name="horizontalHeaderVisible">
<bool>false</bool>
</attribute>
<attribute name="verticalHeaderVisible">
<bool>false</bool>
</attribute>
<attribute name="verticalHeaderHighlightSections">
<bool>true</bool>
</attribute>
<row>
<property name="text">
<string/>
</property>
</row>
<row>
<property name="text">
<string/>
</property>
</row>
<row>
<property name="text">
<string/>
</property>
</row>
<column>
<property name="text">
<string>新建列</string>
</property>
</column>
<item row="0" column="0">
<property name="text">
<string>类目趋势</string>
</property>
<property name="textAlignment">
<set>AlignCenter</set>
</property>
</item>
<item row="1" column="0">
<property name="text">
<string>属性趋势</string>
</property>
<property name="textAlignment">
<set>AlignCenter</set>
</property>
</item>
<item row="2" column="0">
<property name="text">
<string>品牌分析</string>
</property>
<property name="textAlignment">
<set>AlignCenter</set>
</property>
</item>
</widget>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>BaseTable</class>
<extends>QTableWidget</extends>
<header>BaseElement</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>

View file

@ -0,0 +1,74 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'D:\pyPro\hoverMenu\UMarketAnalysis3\L3.ui'
#
# Created by: PyQt5 UI code generator 5.9
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(113, 119)
Form.setStyleSheet("background-color: rgb(85, 170, 255);")
self.verticalLayout = QtWidgets.QVBoxLayout(Form)
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
self.verticalLayout.setSpacing(0)
self.verticalLayout.setObjectName("verticalLayout")
self.tableWidget = BaseTable(Form)
self.tableWidget.setObjectName("tableWidget")
self.tableWidget.setColumnCount(1)
self.tableWidget.setRowCount(3)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setVerticalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setVerticalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setVerticalHeaderItem(2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
item.setTextAlignment(QtCore.Qt.AlignCenter)
self.tableWidget.setItem(0, 0, item)
item = QtWidgets.QTableWidgetItem()
item.setTextAlignment(QtCore.Qt.AlignCenter)
self.tableWidget.setItem(1, 0, item)
item = QtWidgets.QTableWidgetItem()
item.setTextAlignment(QtCore.Qt.AlignCenter)
self.tableWidget.setItem(2, 0, item)
self.tableWidget.horizontalHeader().setVisible(False)
self.tableWidget.verticalHeader().setVisible(False)
self.tableWidget.verticalHeader().setHighlightSections(True)
self.verticalLayout.addWidget(self.tableWidget)
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
item = self.tableWidget.horizontalHeaderItem(0)
item.setText(_translate("Form", "新建列"))
__sortingEnabled = self.tableWidget.isSortingEnabled()
self.tableWidget.setSortingEnabled(False)
item = self.tableWidget.item(0, 0)
item.setText(_translate("Form", "类目趋势"))
item = self.tableWidget.item(1, 0)
item.setText(_translate("Form", "属性趋势"))
item = self.tableWidget.item(2, 0)
item.setText(_translate("Form", "品牌分析"))
self.tableWidget.setSortingEnabled(__sortingEnabled)
from BaseElement import BaseTable
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Form = QtWidgets.QWidget()
ui = Ui_Form()
ui.setupUi(Form)
Form.show()
sys.exit(app.exec_())

View file

@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Form</class>
<widget class="QWidget" name="Form">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>113</width>
<height>119</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgb(85, 170, 255);</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="BaseTable" name="tableWidget">
<attribute name="horizontalHeaderVisible">
<bool>false</bool>
</attribute>
<attribute name="verticalHeaderVisible">
<bool>false</bool>
</attribute>
<attribute name="verticalHeaderHighlightSections">
<bool>true</bool>
</attribute>
<row>
<property name="text">
<string/>
</property>
</row>
<column>
<property name="text">
<string>新建列</string>
</property>
</column>
<item row="0" column="0">
<property name="text">
<string>语音数据</string>
</property>
<property name="textAlignment">
<set>AlignCenter</set>
</property>
</item>
</widget>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>BaseTable</class>
<extends>QTableWidget</extends>
<header>BaseElement</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>

View file

@ -0,0 +1,60 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'D:\pyPro\hoverMenu\UStoreData1\L1.ui'
#
# Created by: PyQt5 UI code generator 5.9
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(113, 119)
Form.setStyleSheet("background-color: rgb(85, 170, 255);")
self.verticalLayout = QtWidgets.QVBoxLayout(Form)
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
self.verticalLayout.setSpacing(0)
self.verticalLayout.setObjectName("verticalLayout")
self.tableWidget = BaseTable(Form)
self.tableWidget.setObjectName("tableWidget")
self.tableWidget.setColumnCount(1)
self.tableWidget.setRowCount(1)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setVerticalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
item.setTextAlignment(QtCore.Qt.AlignCenter)
self.tableWidget.setItem(0, 0, item)
self.tableWidget.horizontalHeader().setVisible(False)
self.tableWidget.verticalHeader().setVisible(False)
self.tableWidget.verticalHeader().setHighlightSections(True)
self.verticalLayout.addWidget(self.tableWidget)
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
item = self.tableWidget.horizontalHeaderItem(0)
item.setText(_translate("Form", "新建列"))
__sortingEnabled = self.tableWidget.isSortingEnabled()
self.tableWidget.setSortingEnabled(False)
item = self.tableWidget.item(0, 0)
item.setText(_translate("Form", "语音数据"))
self.tableWidget.setSortingEnabled(__sortingEnabled)
from BaseElement import BaseTable
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Form = QtWidgets.QWidget()
ui = Ui_Form()
ui.setupUi(Form)
Form.show()
sys.exit(app.exec_())

View file

@ -0,0 +1,44 @@
# -*- coding: utf-8 -*-
"""
Module implementing GeographicAnalysis_Form.
"""
from PyQt5 import QtGui, QtWidgets, QtCore
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from .Ui_GeographicAnalysis_Widget import Ui_Form
class GeographicAnalysis_Form(QWidget, Ui_Form):
"""
Class documentation goes here.
"""
def __init__(self, parent=None):
"""
Constructor
@param parent reference to the parent widget
@type QWidget
"""
super(GeographicAnalysis_Form, self).__init__(parent)
self.setupUi(self)
self.geographicAnalysis_table.horizontalHeader().setSectionResizeMode(1)#列宽设置
self.geographicAnalysis_table.horizontalHeader().setStretchLastSection(True); #充满列宽
self.geographicAnalysis_table.verticalHeader().setSectionResizeMode(1)#行高设置
self.geographicAnalysis_table.verticalHeader().setStretchLastSection(True); #充满行高
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
ui = GeographicAnalysis_Form()
ui.show()
sys.exit(app.exec_())

View file

@ -0,0 +1,42 @@
# -*- coding: utf-8 -*-
"""
Module implementing GeographicAnalysis_Form.
"""
from PyQt5 import QtGui, QtWidgets, QtCore
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from .Ui_GeographicAnalysis_Widget import Ui_Form
class GeographicAnalysis_Form(QWidget, Ui_Form):
"""
Class documentation goes here.
"""
def __init__(self, parent=None):
"""
Constructor
@param parent reference to the parent widget
@type QWidget
"""
super(GeographicAnalysis_Form, self).__init__(parent)
self.setupUi(self)
self.geographicAnalysis_table.horizontalHeader().setSectionResizeMode(1)#列宽设置
self.geographicAnalysis_table.horizontalHeader().setStretchLastSection(True); #充满列宽
self.geographicAnalysis_table.verticalHeader().setSectionResizeMode(1)#行高设置
self.geographicAnalysis_table.verticalHeader().setStretchLastSection(True); #充满行高
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
ui = GeographicAnalysis_Form()
ui.show()
sys.exit(app.exec_())

View file

@ -0,0 +1,121 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Form</class>
<widget class="QWidget" name="Form">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>528</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="analyzed_csv_label">
<property name="text">
<string>选择待分析的数据表(*.csv)</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="choose_file">
<property name="text">
<string>选择文件</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="start_analysis">
<property name="text">
<string>开始分析</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="clear_data">
<property name="text">
<string>数据清理</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="download_excel">
<property name="text">
<string>导出Excel</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="analyzed_csv">
<property name="text">
<string>当前文件:</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="file_name"/>
</item>
</layout>
</item>
<item>
<widget class="QTableWidget" name="geographicAnalysis_table">
<column>
<property name="text">
<string>省份</string>
</property>
</column>
<column>
<property name="text">
<string>城市</string>
</property>
</column>
<column>
<property name="text">
<string>订单数(市)</string>
</property>
</column>
<column>
<property name="text">
<string>百分比(市)</string>
</property>
</column>
<column>
<property name="text">
<string>订单数(省)</string>
</property>
</column>
<column>
<property name="text">
<string>百分比(省)</string>
</property>
</column>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View file

@ -0,0 +1,109 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Form</class>
<widget class="QWidget" name="Form">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>113</width>
<height>119</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgb(85, 170, 255);</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="BaseTable" name="tableWidget">
<property name="verticalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<attribute name="horizontalHeaderVisible">
<bool>false</bool>
</attribute>
<attribute name="verticalHeaderVisible">
<bool>false</bool>
</attribute>
<attribute name="verticalHeaderHighlightSections">
<bool>true</bool>
</attribute>
<row>
<property name="text">
<string>1</string>
</property>
</row>
<row>
<property name="text">
<string>2</string>
</property>
</row>
<row>
<property name="text">
<string>3</string>
</property>
</row>
<column>
<property name="text">
<string>新建列</string>
</property>
</column>
<item row="0" column="0">
<property name="text">
<string>地域分析</string>
</property>
<property name="textAlignment">
<set>AlignCenter</set>
</property>
</item>
<item row="1" column="0">
<property name="text">
<string>实时数据</string>
</property>
<property name="textAlignment">
<set>AlignCenter</set>
</property>
</item>
<item row="2" column="0">
<property name="text">
<string>标签工具</string>
</property>
<property name="textAlignment">
<set>AlignCenter</set>
</property>
</item>
</widget>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>BaseTable</class>
<extends>QTableWidget</extends>
<header>BaseElement</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>

View file

@ -0,0 +1,98 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'D:\pyPro\hoverMenu\UThroughTrain4\GeographicAnalysis_Widget.ui'
#
# Created by: PyQt5 UI code generator 5.9
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(528, 300)
self.verticalLayout = QtWidgets.QVBoxLayout(Form)
self.verticalLayout.setObjectName("verticalLayout")
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.analyzed_csv_label = QtWidgets.QLabel(Form)
self.analyzed_csv_label.setObjectName("analyzed_csv_label")
self.horizontalLayout.addWidget(self.analyzed_csv_label)
self.choose_file = QtWidgets.QPushButton(Form)
self.choose_file.setObjectName("choose_file")
self.horizontalLayout.addWidget(self.choose_file)
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout.addItem(spacerItem)
self.start_analysis = QtWidgets.QPushButton(Form)
self.start_analysis.setObjectName("start_analysis")
self.horizontalLayout.addWidget(self.start_analysis)
self.clear_data = QtWidgets.QPushButton(Form)
self.clear_data.setObjectName("clear_data")
self.horizontalLayout.addWidget(self.clear_data)
self.download_excel = QtWidgets.QPushButton(Form)
self.download_excel.setObjectName("download_excel")
self.horizontalLayout.addWidget(self.download_excel)
self.verticalLayout.addLayout(self.horizontalLayout)
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.analyzed_csv = QtWidgets.QLabel(Form)
self.analyzed_csv.setObjectName("analyzed_csv")
self.horizontalLayout_2.addWidget(self.analyzed_csv)
self.file_name = QtWidgets.QLineEdit(Form)
self.file_name.setObjectName("file_name")
self.horizontalLayout_2.addWidget(self.file_name)
self.verticalLayout.addLayout(self.horizontalLayout_2)
self.geographicAnalysis_table = QtWidgets.QTableWidget(Form)
self.geographicAnalysis_table.setObjectName("geographicAnalysis_table")
self.geographicAnalysis_table.setColumnCount(6)
self.geographicAnalysis_table.setRowCount(0)
item = QtWidgets.QTableWidgetItem()
self.geographicAnalysis_table.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.geographicAnalysis_table.setHorizontalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.geographicAnalysis_table.setHorizontalHeaderItem(2, item)
item = QtWidgets.QTableWidgetItem()
self.geographicAnalysis_table.setHorizontalHeaderItem(3, item)
item = QtWidgets.QTableWidgetItem()
self.geographicAnalysis_table.setHorizontalHeaderItem(4, item)
item = QtWidgets.QTableWidgetItem()
self.geographicAnalysis_table.setHorizontalHeaderItem(5, item)
self.verticalLayout.addWidget(self.geographicAnalysis_table)
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.analyzed_csv_label.setText(_translate("Form", "选择待分析的数据表(*.csv)"))
self.choose_file.setText(_translate("Form", "选择文件"))
self.start_analysis.setText(_translate("Form", "开始分析"))
self.clear_data.setText(_translate("Form", "数据清理"))
self.download_excel.setText(_translate("Form", "导出Excel"))
self.analyzed_csv.setText(_translate("Form", "当前文件:"))
item = self.geographicAnalysis_table.horizontalHeaderItem(0)
item.setText(_translate("Form", "省份"))
item = self.geographicAnalysis_table.horizontalHeaderItem(1)
item.setText(_translate("Form", "城市"))
item = self.geographicAnalysis_table.horizontalHeaderItem(2)
item.setText(_translate("Form", "订单数(市)"))
item = self.geographicAnalysis_table.horizontalHeaderItem(3)
item.setText(_translate("Form", "百分比(市)"))
item = self.geographicAnalysis_table.horizontalHeaderItem(4)
item.setText(_translate("Form", "订单数(省)"))
item = self.geographicAnalysis_table.horizontalHeaderItem(5)
item.setText(_translate("Form", "百分比(省)"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Form = QtWidgets.QWidget()
ui = Ui_Form()
ui.setupUi(Form)
Form.show()
sys.exit(app.exec_())

View file

@ -0,0 +1,82 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'D:\pyPro\hoverMenu\UThroughTrain4\L4.ui'
#
# Created by: PyQt5 UI code generator 5.9
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(113, 119)
Form.setStyleSheet("background-color: rgb(85, 170, 255);")
self.verticalLayout = QtWidgets.QVBoxLayout(Form)
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
self.verticalLayout.setSpacing(0)
self.verticalLayout.setObjectName("verticalLayout")
self.tableWidget = BaseTable(Form)
self.tableWidget.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
self.tableWidget.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
self.tableWidget.setObjectName("tableWidget")
self.tableWidget.setColumnCount(1)
self.tableWidget.setRowCount(3)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setVerticalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setVerticalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setVerticalHeaderItem(2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
item.setTextAlignment(QtCore.Qt.AlignCenter)
self.tableWidget.setItem(0, 0, item)
item = QtWidgets.QTableWidgetItem()
item.setTextAlignment(QtCore.Qt.AlignCenter)
self.tableWidget.setItem(1, 0, item)
item = QtWidgets.QTableWidgetItem()
item.setTextAlignment(QtCore.Qt.AlignCenter)
self.tableWidget.setItem(2, 0, item)
self.tableWidget.horizontalHeader().setVisible(False)
self.tableWidget.verticalHeader().setVisible(False)
self.tableWidget.verticalHeader().setHighlightSections(True)
self.verticalLayout.addWidget(self.tableWidget)
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
item = self.tableWidget.verticalHeaderItem(0)
item.setText(_translate("Form", "1"))
item = self.tableWidget.verticalHeaderItem(1)
item.setText(_translate("Form", "2"))
item = self.tableWidget.verticalHeaderItem(2)
item.setText(_translate("Form", "3"))
item = self.tableWidget.horizontalHeaderItem(0)
item.setText(_translate("Form", "新建列"))
__sortingEnabled = self.tableWidget.isSortingEnabled()
self.tableWidget.setSortingEnabled(False)
item = self.tableWidget.item(0, 0)
item.setText(_translate("Form", "地域分析"))
item = self.tableWidget.item(1, 0)
item.setText(_translate("Form", "实时数据"))
item = self.tableWidget.item(2, 0)
item.setText(_translate("Form", "标签工具"))
self.tableWidget.setSortingEnabled(__sortingEnabled)
from BaseElement import BaseTable
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Form = QtWidgets.QWidget()
ui = Ui_Form()
ui.setupUi(Form)
Form.show()
sys.exit(app.exec_())

View file

@ -0,0 +1,181 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'D:\pyPro\hoverMenu\Main.ui'
#
# Created by: PyQt5 UI code generator 5.9
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(648, 493)
MainWindow.setStyleSheet(" #MainWindow { border:none;}")
self.centralWidget = QtWidgets.QWidget(MainWindow)
self.centralWidget.setStyleSheet("#centralWidget {border:none;}")
self.centralWidget.setObjectName("centralWidget")
self.verticalLayout = QtWidgets.QVBoxLayout(self.centralWidget)
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
self.verticalLayout.setSpacing(2)
self.verticalLayout.setObjectName("verticalLayout")
self.widget = QtWidgets.QWidget(self.centralWidget)
self.widget.setStyleSheet("#widget {border:none;}")
self.widget.setObjectName("widget")
self.verticalLayout_14 = QtWidgets.QVBoxLayout(self.widget)
self.verticalLayout_14.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_14.setSpacing(0)
self.verticalLayout_14.setObjectName("verticalLayout_14")
self.topWidget = QtWidgets.QWidget(self.widget)
self.topWidget.setStyleSheet("#widget{ border:none; }")
self.topWidget.setObjectName("topWidget")
self.horizontalLayout = QtWidgets.QHBoxLayout(self.topWidget)
self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
self.horizontalLayout.setSpacing(2)
self.horizontalLayout.setObjectName("horizontalLayout")
self.W1 = SingeleWidget(self.topWidget)
self.W1.setObjectName("W1")
self.gridLayout = QtWidgets.QGridLayout(self.W1)
self.gridLayout.setContentsMargins(9, 9, 9, 9)
self.gridLayout.setSpacing(2)
self.gridLayout.setObjectName("gridLayout")
self.filemenu_storeData_3 = B1(self.W1)
self.filemenu_storeData_3.setText("")
self.filemenu_storeData_3.setObjectName("filemenu_storeData_3")
self.gridLayout.addWidget(self.filemenu_storeData_3, 0, 1, 1, 1)
self.label_15 = QtWidgets.QLabel(self.W1)
self.label_15.setAlignment(QtCore.Qt.AlignCenter)
self.label_15.setObjectName("label_15")
self.gridLayout.addWidget(self.label_15, 1, 1, 1, 1)
spacerItem = QtWidgets.QSpacerItem(10, 20, QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Minimum)
self.gridLayout.addItem(spacerItem, 0, 0, 1, 1)
spacerItem1 = QtWidgets.QSpacerItem(10, 20, QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Minimum)
self.gridLayout.addItem(spacerItem1, 0, 2, 1, 1)
self.horizontalLayout.addWidget(self.W1)
self.W2 = SingeleWidget(self.topWidget)
self.W2.setObjectName("W2")
self.gridLayout_2 = QtWidgets.QGridLayout(self.W2)
self.gridLayout_2.setContentsMargins(9, 9, 9, 9)
self.gridLayout_2.setSpacing(2)
self.gridLayout_2.setObjectName("gridLayout_2")
self.label_16 = QtWidgets.QLabel(self.W2)
self.label_16.setAlignment(QtCore.Qt.AlignCenter)
self.label_16.setObjectName("label_16")
self.gridLayout_2.addWidget(self.label_16, 1, 1, 1, 1)
self.filemenu_competitiveProductAnalysis_3 = B2(self.W2)
self.filemenu_competitiveProductAnalysis_3.setText("")
self.filemenu_competitiveProductAnalysis_3.setObjectName("filemenu_competitiveProductAnalysis_3")
self.gridLayout_2.addWidget(self.filemenu_competitiveProductAnalysis_3, 0, 1, 1, 1)
spacerItem2 = QtWidgets.QSpacerItem(10, 20, QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Minimum)
self.gridLayout_2.addItem(spacerItem2, 0, 0, 1, 1)
spacerItem3 = QtWidgets.QSpacerItem(10, 20, QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Minimum)
self.gridLayout_2.addItem(spacerItem3, 0, 2, 1, 1)
self.horizontalLayout.addWidget(self.W2)
self.W3 = SingeleWidget(self.topWidget)
self.W3.setObjectName("W3")
self.gridLayout_4 = QtWidgets.QGridLayout(self.W3)
self.gridLayout_4.setContentsMargins(9, 9, 9, 9)
self.gridLayout_4.setSpacing(2)
self.gridLayout_4.setObjectName("gridLayout_4")
spacerItem4 = QtWidgets.QSpacerItem(10, 20, QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Minimum)
self.gridLayout_4.addItem(spacerItem4, 0, 0, 1, 1)
self.filemenu_throughTrain_4 = B3(self.W3)
self.filemenu_throughTrain_4.setAutoFillBackground(False)
self.filemenu_throughTrain_4.setText("")
self.filemenu_throughTrain_4.setObjectName("filemenu_throughTrain_4")
self.gridLayout_4.addWidget(self.filemenu_throughTrain_4, 0, 1, 1, 1)
self.label_19 = QtWidgets.QLabel(self.W3)
self.label_19.setAlignment(QtCore.Qt.AlignCenter)
self.label_19.setObjectName("label_19")
self.gridLayout_4.addWidget(self.label_19, 1, 1, 1, 1)
spacerItem5 = QtWidgets.QSpacerItem(10, 20, QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Minimum)
self.gridLayout_4.addItem(spacerItem5, 0, 2, 1, 1)
self.horizontalLayout.addWidget(self.W3)
self.W4 = SingeleWidget(self.topWidget)
self.W4.setObjectName("W4")
self.gridLayout_5 = QtWidgets.QGridLayout(self.W4)
self.gridLayout_5.setContentsMargins(9, 9, 9, 9)
self.gridLayout_5.setSpacing(2)
self.gridLayout_5.setObjectName("gridLayout_5")
spacerItem6 = QtWidgets.QSpacerItem(10, 20, QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Minimum)
self.gridLayout_5.addItem(spacerItem6, 0, 0, 1, 1)
self.filemenu_throughTrain_3 = B4(self.W4)
self.filemenu_throughTrain_3.setAutoFillBackground(False)
self.filemenu_throughTrain_3.setText("")
self.filemenu_throughTrain_3.setObjectName("filemenu_throughTrain_3")
self.gridLayout_5.addWidget(self.filemenu_throughTrain_3, 0, 1, 1, 1)
self.label_14 = QtWidgets.QLabel(self.W4)
self.label_14.setAlignment(QtCore.Qt.AlignCenter)
self.label_14.setObjectName("label_14")
self.gridLayout_5.addWidget(self.label_14, 1, 1, 1, 1)
spacerItem7 = QtWidgets.QSpacerItem(10, 20, QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Minimum)
self.gridLayout_5.addItem(spacerItem7, 0, 2, 1, 1)
self.horizontalLayout.addWidget(self.W4)
self.verticalLayout_19 = QtWidgets.QVBoxLayout()
self.verticalLayout_19.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_19.setSpacing(2)
self.verticalLayout_19.setObjectName("verticalLayout_19")
self.label_17 = QtWidgets.QLabel(self.topWidget)
self.label_17.setAlignment(QtCore.Qt.AlignCenter)
self.label_17.setObjectName("label_17")
self.verticalLayout_19.addWidget(self.label_17)
self.label_18 = QtWidgets.QLabel(self.topWidget)
self.label_18.setAlignment(QtCore.Qt.AlignCenter)
self.label_18.setObjectName("label_18")
self.verticalLayout_19.addWidget(self.label_18)
self.horizontalLayout.addLayout(self.verticalLayout_19)
spacerItem8 = QtWidgets.QSpacerItem(25, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout.addItem(spacerItem8)
self.horizontalLayout.setStretch(0, 1)
self.horizontalLayout.setStretch(1, 1)
self.horizontalLayout.setStretch(2, 1)
self.horizontalLayout.setStretch(3, 1)
self.verticalLayout_14.addWidget(self.topWidget)
self.buttomWidget = QtWidgets.QWidget(self.widget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.buttomWidget.sizePolicy().hasHeightForWidth())
self.buttomWidget.setSizePolicy(sizePolicy)
self.buttomWidget.setObjectName("buttomWidget")
self.Buttom_Vbox = QtWidgets.QVBoxLayout(self.buttomWidget)
self.Buttom_Vbox.setContentsMargins(0, 0, 0, 0)
self.Buttom_Vbox.setSpacing(0)
self.Buttom_Vbox.setObjectName("Buttom_Vbox")
self.verticalLayout_14.addWidget(self.buttomWidget)
self.verticalLayout.addWidget(self.widget)
MainWindow.setCentralWidget(self.centralWidget)
self.action1 = QtWidgets.QAction(MainWindow)
self.action1.setObjectName("action1")
self.action2 = QtWidgets.QAction(MainWindow)
self.action2.setObjectName("action2")
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.label_15.setText(_translate("MainWindow", "店铺数据"))
self.label_16.setText(_translate("MainWindow", "竞品分析"))
self.label_19.setText(_translate("MainWindow", "直通工具"))
self.label_14.setText(_translate("MainWindow", "直通工具"))
self.label_17.setText(_translate("MainWindow", "个人中心"))
self.label_18.setText(_translate("MainWindow", "退出登录"))
self.action1.setText(_translate("MainWindow", "1"))
self.action2.setText(_translate("MainWindow", "2"))
from BaseElement import SingeleWidget
from Menu import B1, B2, B3, B4
import tbqrc_rc
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())

View file

@ -0,0 +1,68 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Project SYSTEM "Project-5.1.dtd">
<!-- eric project file for project hoverMenu -->
<!-- Saved: 2018-07-07, 14:22:08 -->
<!-- Copyright (C) 2018 , -->
<Project version="5.1">
<Language></Language>
<Hash>873d0c0fade67dd54262d1b6954d5edfac966911</Hash>
<ProgLanguage mixed="0">Python3</ProgLanguage>
<ProjectType>PyQt5</ProjectType>
<Version>0.1</Version>
<Author></Author>
<Email></Email>
<Eol index="0"/>
<Sources>
<Source>BaseElement.py</Source>
<Source>CommonHelper.py</Source>
<Source>Main.py</Source>
<Source>Menu.py</Source>
<Source>UCompetitiveProduct2/SKU_Widget.py</Source>
<Source>UCompetitiveProduct2/Ui_L2.py</Source>
<Source>UCompetitiveProduct2/Ui_SKU_Widget.py</Source>
<Source>UMarketAnalysis3/Ui_L3.py</Source>
<Source>UStoreData1/Ui_L1.py</Source>
<Source>UThroughTrain4/GeographicAnalysis_Widget.py</Source>
<Source>UThroughTrain4/Ui_GeographicAnalysis_Widget.py</Source>
<Source>UThroughTrain4/Ui_L4.py</Source>
<Source>Ui_Main.py</Source>
<Source>__init__.py</Source>
<Source>tbqrc_rc.py</Source>
</Sources>
<Forms>
<Form>Main.ui</Form>
<Form>UCompetitiveProduct2/L2.ui</Form>
<Form>UCompetitiveProduct2/SKU_Widget.ui</Form>
<Form>UMarketAnalysis3/L3.ui</Form>
<Form>UStoreData1/L1.ui</Form>
<Form>UThroughTrain4/GeographicAnalysis_Widget.ui</Form>
<Form>UThroughTrain4/GeographicAnalysis_Widget.ui</Form>
<Form>UThroughTrain4/L4.ui</Form>
</Forms>
<Translations/>
<Resources>
<Resource>tbqrc.qrc</Resource>
</Resources>
<Interfaces/>
<Others/>
<Vcs>
<VcsType>None</VcsType>
</Vcs>
<FiletypeAssociations>
<FiletypeAssociation pattern="*.e4p" type="OTHERS"/>
<FiletypeAssociation pattern="*.idl" type="INTERFACES"/>
<FiletypeAssociation pattern="*.md" type="OTHERS"/>
<FiletypeAssociation pattern="*.py" type="SOURCES"/>
<FiletypeAssociation pattern="*.py3" type="SOURCES"/>
<FiletypeAssociation pattern="*.pyw" type="SOURCES"/>
<FiletypeAssociation pattern="*.pyw3" type="SOURCES"/>
<FiletypeAssociation pattern="*.qm" type="TRANSLATIONS"/>
<FiletypeAssociation pattern="*.qrc" type="RESOURCES"/>
<FiletypeAssociation pattern="*.rst" type="OTHERS"/>
<FiletypeAssociation pattern="*.ts" type="TRANSLATIONS"/>
<FiletypeAssociation pattern="*.txt" type="OTHERS"/>
<FiletypeAssociation pattern="*.ui" type="FORMS"/>
<FiletypeAssociation pattern="README" type="OTHERS"/>
<FiletypeAssociation pattern="README.*" type="OTHERS"/>
</FiletypeAssociations>
</Project>

View file

@ -0,0 +1,5 @@
# 进入式下拉菜单
![效果图](ScreenShot/2.gif)
[文档](Documentation/index-5.hoverMenu.md)

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

View file

@ -0,0 +1,660 @@
/*background-color: #3daee9; */
#topWidget , TestWidget
{
color: #eff0f1;
background-color: #3daee9;
/* selection-background-color:#3daee9; */
selection-color: #eff0f1;
background-clip: border;
border-image: none;
border: 0px transparent black;
outline: 0;
}
TestWidget > QPushButton{
border-width: 1px;
}
#buttomWidget
{
border-image: url(:/static/background.jpg);
}
QWidget #topWidget >QWidget:hover , TestWidget:hover
{
background-color: #18465d;
color: #eff0f1;
}
QWidget:item:hover
{
background-color: #18465d;
color: #eff0f1;
}
/* QWidget:item:selected
{
background-color: #18465d;
} */
QWidget:disabled
{
color: #454545;
background-color: #31363b;
}
QAbstractItemView
{
alternate-background-color: #31363b;
color: #eff0f1;
border: 1px solid 3A3939;
border-radius: 2px;
}
QWidget:focus, QMenuBar:focus
{
border: 1px solid #3daee9;
}
QTabWidget:focus, QCheckBox:focus, QRadioButton:focus, QSlider:focus
{
border: none;
}
QLineEdit
{
background-color: #232629;
padding: 5px;
border-style: solid;
border: 1px solid #76797C;
border-radius: 2px;
color: #eff0f1;
}
QAbstractItemView QLineEdit
{
padding: 0;
}
QGroupBox {
border:1px solid #76797C;
border-radius: 2px;
margin-top: 20px;
}
QGroupBox::title {
subcontrol-origin: margin;
subcontrol-position: top center;
padding-left: 10px;
padding-right: 10px;
padding-top: 10px;
}
QAbstractScrollArea
{
border-radius: 2px;
border: 1px solid #76797C;
background-color: transparent;
}
/* --------------------------------------- QScrollBar -----------------------------------*/
QScrollBar:horizontal
{
height: 15px;
margin: 3px 15px 3px 15px;
border: 1px transparent #2A2929;
border-radius: 4px;
background-color: #2A2929;
}
QScrollBar::handle:horizontal
{
background-color: #605F5F;
min-width: 5px;
border-radius: 4px;
}
QScrollBar::add-line:horizontal
{
margin: 0px 3px 0px 3px;
border-image: url(:/qss_icons/rc/right_arrow_disabled.png);
width: 10px;
height: 10px;
subcontrol-position: right;
subcontrol-origin: margin;
}
QScrollBar::sub-line:horizontal
{
margin: 0px 3px 0px 3px;
border-image: url(:/qss_icons/rc/left_arrow_disabled.png);
height: 10px;
width: 10px;
subcontrol-position: left;
subcontrol-origin: margin;
}
QScrollBar::add-line:horizontal:hover,QScrollBar::add-line:horizontal:on
{
border-image: url(:/qss_icons/rc/right_arrow.png);
height: 10px;
width: 10px;
subcontrol-position: right;
subcontrol-origin: margin;
}
QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on
{
border-image: url(:/qss_icons/rc/left_arrow.png);
height: 10px;
width: 10px;
subcontrol-position: left;
subcontrol-origin: margin;
}
QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal
{
background: none;
}
QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal
{
background: none;
}
QScrollBar:vertical
{
background-color: #2A2929;
width: 15px;
margin: 15px 3px 15px 3px;
border: 1px transparent #2A2929;
border-radius: 4px;
}
QScrollBar::handle:vertical
{
background-color: #605F5F;
min-height: 5px;
border-radius: 4px;
}
QScrollBar::sub-line:vertical
{
margin: 3px 0px 3px 0px;
border-image: url(:/qss_icons/rc/up_arrow_disabled.png);
height: 10px;
width: 10px;
subcontrol-position: top;
subcontrol-origin: margin;
}
QScrollBar::add-line:vertical
{
margin: 3px 0px 3px 0px;
border-image: url(:/qss_icons/rc/down_arrow_disabled.png);
height: 10px;
width: 10px;
subcontrol-position: bottom;
subcontrol-origin: margin;
}
QScrollBar::sub-line:vertical:hover,QScrollBar::sub-line:vertical:on
{
border-image: url(:/qss_icons/rc/up_arrow.png);
height: 10px;
width: 10px;
subcontrol-position: top;
subcontrol-origin: margin;
}
QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on
{
border-image: url(:/qss_icons/rc/down_arrow.png);
height: 10px;
width: 10px;
subcontrol-position: bottom;
subcontrol-origin: margin;
}
QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical
{
background: none;
}
QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical
{
background: none;
}
QTextEdit
{
background-color: #232629;
color: #eff0f1;
border: 1px solid #76797C;
}
QPlainTextEdit
{
background-color: #232629;;
color: #eff0f1;
border-radius: 2px;
border: 1px solid #76797C;
}
QHeaderView::section
{
background-color: #76797C;
color: #eff0f1;
padding: 5px;
border: 1px solid #76797C;
}
QSizeGrip {
image: url(:/qss_icons/rc/sizegrip.png);
width: 12px;
height: 12px;
}
QMainWindow::separator
{
background-color: #31363b;
/* color: white; */
padding-left: 4px;
spacing: 2px;
border: 1px dashed #76797C;
}
QMainWindow::separator:hover
{
background-color: #787876;
color: white;
padding-left: 4px;
border: 1px solid #76797C;
spacing: 2px;
}
QMenu::separator
{
height: 1px;
background-color: #76797C;
color: white;
padding-left: 4px;
margin-left: 10px;
margin-right: 5px;
}
QFrame
{
border-radius: 2px;
border: 1px solid #76797C;
}
QFrame[frameShape="0"]
{
border-radius: 2px;
border: 1px transparent #76797C;
}
QStackedWidget
{
border: 1px transparent black;
}
/* --------------------------------------- QPushButton -----------------------------------*/
QPushButton
{
color: #eff0f1;
border-width: 1px;
border-color: rgb(220, 225, 230);
border-style: solid;
padding: 5px;
border-radius: 2px;
outline: none;
}
QPushButton:disabled
{
background-color: #31363b;
border-width: 1px;
border-color: #454545;
border-style: solid;
padding-top: 5px;
padding-bottom: 5px;
padding-left: 10px;
padding-right: 10px;
border-radius: 2px;
color: #454545;
}
QPushButton:focus {
background-color: #0d354b;
color: white;
}
QPushButton:pressed
{
background-color: #3daee9;
padding-top: -15px;
padding-bottom: -17px;
}
QPushButton:checked{
background-color: #76797C;
border-color: #6A6969;
}
QLabel
{
color:white;
}
QTabWidget{
border: 0px transparent black;
}
QTabWidget::pane {
border: 1px solid #76797C;
padding: 5px;
margin: 0px;
}
QTabWidget::tab-bar {
left: 5px; /* move to the right by 5px */
}
QTreeView, QListView
{
border: 1px solid #76797C;
background-color: #232629;
}
QTreeView:branch:selected, QTreeView:branch:hover
{
background: url(:/qss_icons/rc/transparent.png);
}
QTreeView::branch:has-siblings:!adjoins-item {
border-image: url(:/qss_icons/rc/transparent.png);
}
QTreeView::branch:has-siblings:adjoins-item {
border-image: url(:/qss_icons/rc/transparent.png);
}
QTreeView::branch:!has-children:!has-siblings:adjoins-item {
border-image: url(:/qss_icons/rc/transparent.png);
}
QTreeView::branch:has-children:!has-siblings:closed,
QTreeView::branch:closed:has-children:has-siblings {
image: url(:/qss_icons/rc/branch_closed.png);
}
QTreeView::branch:open:has-children:!has-siblings,
QTreeView::branch:open:has-children:has-siblings {
image: url(:/qss_icons/rc/branch_open.png);
}
QTreeView::branch:has-children:!has-siblings:closed:hover,
QTreeView::branch:closed:has-children:has-siblings:hover {
image: url(:/qss_icons/rc/branch_closed-on.png);
}
QTreeView::branch:open:has-children:!has-siblings:hover,
QTreeView::branch:open:has-children:has-siblings:hover {
image: url(:/qss_icons/rc/branch_open-on.png);
}
QListView::item:!selected:hover, QTreeView::item:!selected:hover {
background: #18465d;
outline: 0;
color: #eff0f1
}
QListView::item:selected:hover, QTreeView::item:selected:hover {
background: #287399;
color: #eff0f1;
}
QSlider::groove:horizontal {
border: 1px solid #565a5e;
height: 4px;
background: #565a5e;
margin: 0px;
border-radius: 2px;
}
QSlider::handle:horizontal {
background: #232629;
border: 1px solid #565a5e;
width: 16px;
height: 16px;
margin: -8px 0;
border-radius: 9px;
}
QSlider::groove:vertical {
border: 1px solid #565a5e;
width: 4px;
background: #565a5e;
margin: 0px;
border-radius: 3px;
}
QSlider::handle:vertical {
background: #232629;
border: 1px solid #565a5e;
width: 16px;
height: 16px;
margin: 0 -8px;
border-radius: 9px;
}
QToolButton {
background-color: transparent;
border: 1px transparent #76797C;
border-radius: 2px;
margin: 3px;
padding: 5px;
}
QToolButton[popupMode="1"] { /* only for MenuButtonPopup */
padding-right: 20px; /* make way for the popup button */
border: 1px #76797C;
border-radius: 5px;
}
QToolButton[popupMode="2"] { /* only for InstantPopup */
padding-right: 10px; /* make way for the popup button */
border: 1px #76797C;
}
QToolButton:hover, QToolButton::menu-button:hover {
background-color: transparent;
border: 1px solid #3daee9;
padding: 5px;
}
QToolButton:checked, QToolButton:pressed,
QToolButton::menu-button:pressed {
background-color: #3daee9;
border: 1px solid #3daee9;
padding: 5px;
}
/* the subcontrol below is used only in the InstantPopup or DelayedPopup mode */
QToolButton::menu-indicator {
image: url(:/qss_icons/rc/down_arrow.png);
top: -7px; left: -2px; /* shift it a bit */
}
/* the subcontrols below are used only in the MenuButtonPopup mode */
QToolButton::menu-button {
border: 1px transparent #76797C;
border-top-right-radius: 6px;
border-bottom-right-radius: 6px;
/* 16px width + 4px for border = 20px allocated above */
width: 16px;
outline: none;
}
QToolButton::menu-arrow {
image: url(:/qss_icons/rc/down_arrow.png);
}
QToolButton::menu-arrow:open {
border: 1px solid #76797C;
}
QPushButton::menu-indicator {
subcontrol-origin: padding;
subcontrol-position: bottom right;
left: 8px;
}
BaseMenuWidget{
border:1px solid rgb(17, 66, 116);
}
QTableView
{
border: 1px solid rgb(17, 66, 116);
/* border: 1px solid #76797C; */
gridline-color: rgb(17, 66, 116);
background-color: #232629;
}
QTableView, QHeaderView
{
border-radius: 0px;
}
QTableView::item:pressed, QListView::item:pressed, QTreeView::item:pressed {
background: #18465d;
color: #eff0f1;
}
QTableView::item:selected:active, QTreeView::item:selected:active, QListView::item:selected:active {
background: #287399;
color: #eff0f1;
}
QHeaderView
{
background-color: #31363b;
border: 1px transparent;
border-radius: 0px;
margin: 0px;
padding: 0px;
}
QHeaderView::section {
background-color: #31363b;
color: #eff0f1;
padding: 5px;
border: 1px solid #76797C;
border-radius: 0px;
text-align: center;
}
QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one
{
border-top: 1px solid #76797C;
}
QHeaderView::section::vertical
{
border-top: transparent;
}
QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one
{
border-left: 1px solid #76797C;
}
QHeaderView::section::horizontal
{
border-left: transparent;
}
QHeaderView::section:checked
{
color: white;
background-color: #334e5e;
}
/* style the sort indicator */
QHeaderView::down-arrow {
image: url(:/qss_icons/rc/down_arrow.png);
}
QHeaderView::up-arrow {
image: url(:/qss_icons/rc/up_arrow.png);
}
QStatusBar::item {
border: 0px transparent dark;
}
QFrame[height="3"], QFrame[width="3"] {
background-color: #76797C;
}
QSplitter::handle {
border: 1px dashed #76797C;
}
QSplitter::handle:hover {
background-color: #787876;
border: 1px solid #76797C;
}
QSplitter::handle:horizontal {
width: 1px;
}
QSplitter::handle:vertical {
height: 1px;
}
QProgressBar {
border: 1px solid #76797C;
border-radius: 5px;
text-align: center;
}
QProgressBar::chunk {
background-color: #05B8CC;
}

View file

@ -0,0 +1,471 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<author>Lin</author>
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>606</width>
<height>355</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<property name="styleSheet">
<string notr="true"> #MainWindow { border:none;}</string>
</property>
<widget class="QWidget" name="centralWidget">
<property name="styleSheet">
<string notr="true">#centralWidget {border:none;}</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QWidget" name="widget" native="true">
<property name="styleSheet">
<string notr="true">#widget {border:none;}</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_14">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QWidget" name="topWidget" native="true">
<property name="styleSheet">
<string notr="true">#widget{ border:none; }</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout" stretch="1,1,1,1,0,0">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="SingeleWidget" name="W1" native="true">
<layout class="QGridLayout" name="gridLayout">
<property name="leftMargin">
<number>9</number>
</property>
<property name="topMargin">
<number>9</number>
</property>
<property name="rightMargin">
<number>9</number>
</property>
<property name="bottomMargin">
<number>9</number>
</property>
<item row="0" column="1">
<widget class="B1" name="filemenu_storeData_3">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="label_15">
<property name="text">
<string>店铺数据</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="0" column="0">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Preferred</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>10</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="2">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Preferred</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>10</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<widget class="SingeleWidget" name="W2" native="true">
<layout class="QGridLayout" name="gridLayout_2">
<property name="leftMargin">
<number>9</number>
</property>
<property name="topMargin">
<number>9</number>
</property>
<property name="rightMargin">
<number>9</number>
</property>
<property name="bottomMargin">
<number>9</number>
</property>
<item row="1" column="1">
<widget class="QLabel" name="label_16">
<property name="text">
<string>竞品分析</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="B2" name="filemenu_competitiveProductAnalysis_3">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="0" column="0">
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Preferred</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>10</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="2">
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Preferred</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>10</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<widget class="SingeleWidget" name="W3" native="true">
<layout class="QGridLayout" name="gridLayout_4">
<property name="leftMargin">
<number>9</number>
</property>
<property name="topMargin">
<number>9</number>
</property>
<property name="rightMargin">
<number>9</number>
</property>
<property name="bottomMargin">
<number>9</number>
</property>
<item row="0" column="0">
<spacer name="horizontalSpacer_5">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Preferred</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>10</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="1">
<widget class="B3" name="filemenu_throughTrain_4">
<property name="autoFillBackground">
<bool>false</bool>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="label_19">
<property name="text">
<string>直通工具</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="0" column="2">
<spacer name="horizontalSpacer_6">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Preferred</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>10</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<widget class="SingeleWidget" name="W4" native="true">
<layout class="QGridLayout" name="gridLayout_5">
<property name="leftMargin">
<number>9</number>
</property>
<property name="topMargin">
<number>9</number>
</property>
<property name="rightMargin">
<number>9</number>
</property>
<property name="bottomMargin">
<number>9</number>
</property>
<item row="0" column="0">
<spacer name="horizontalSpacer_7">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Preferred</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>10</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="1">
<widget class="B4" name="filemenu_throughTrain_3">
<property name="autoFillBackground">
<bool>false</bool>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="label_14">
<property name="text">
<string>直通工具</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="0" column="2">
<spacer name="horizontalSpacer_8">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Preferred</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>10</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_19">
<item>
<widget class="QLabel" name="label_17">
<property name="text">
<string>个人中心</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_18">
<property name="text">
<string>退出登录</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="horizontalSpacer_9">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>25</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QWidget" name="buttomWidget" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QVBoxLayout" name="Buttom_Vbox">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
</layout>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<action name="action1">
<property name="text">
<string>1</string>
</property>
</action>
<action name="action2">
<property name="text">
<string>2</string>
</property>
</action>
</widget>
<layoutdefault spacing="2" margin="0"/>
<customwidgets>
<customwidget>
<class>B1</class>
<extends>QPushButton</extends>
<header>Menu</header>
</customwidget>
<customwidget>
<class>B2</class>
<extends>QPushButton</extends>
<header>Menu</header>
</customwidget>
<customwidget>
<class>B3</class>
<extends>QPushButton</extends>
<header>Menu</header>
</customwidget>
<customwidget>
<class>B4</class>
<extends>QPushButton</extends>
<header>Menu</header>
</customwidget>
<customwidget>
<class>SingeleWidget</class>
<extends>QWidget</extends>
<header>Menu</header>
<container>1</container>
</customwidget>
</customwidgets>
<resources>
<include location="tbqrc.qrc"/>
</resources>
<connections/>
<designerdata>
<property name="gridDeltaX">
<number>10</number>
</property>
<property name="gridDeltaY">
<number>10</number>
</property>
<property name="gridSnapX">
<bool>true</bool>
</property>
<property name="gridSnapY">
<bool>true</bool>
</property>
<property name="gridVisible">
<bool>true</bool>
</property>
</designerdata>
</ui>

View file

@ -0,0 +1,24 @@
<RCC>
<qresource>
<file>static/background.jpg</file>
<file>static/competitiveProductAnalysis.png</file>
<file>static/download.jpg</file>
<file>static/drillTools.png</file>
<file>static/exit.png</file>
<file>static/finance.png</file>
<file>static/icon.ico</file>
<file>static/information.png</file>
<file>static/login.jpg</file>
<file>static/marketAnalysis.png</file>
<file>static/microAmoy.png</file>
<file>static/password.png</file>
<file>static/qr_main.png</file>
<file>static/register.jpg</file>
<file>static/search.png</file>
<file>static/store_data.png</file>
<file>static/taobaoLogin.png</file>
<file>static/taobaoLogin_title.png</file>
<file>static/throughTrain.png</file>
<file>static/username_headers.png</file>
</qresource>
</RCC>

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 812 KiB

View file

@ -0,0 +1,49 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'D:\QGroup_432987409\WoHowLearn\0.M_I_pyqt\partner_625781186\QML_QtQuick_PY\QDialog中嵌入qml窗体并缩放\py_qml.ui'
#
# Created by: PyQt5 UI code generator 5.9.2
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(420, 317)
Dialog.setSizeGripEnabled(True)
self.verticalLayout = QtWidgets.QVBoxLayout(Dialog)
self.verticalLayout.setObjectName("verticalLayout")
self.widget = QtWidgets.QWidget(Dialog)
self.widget.setObjectName("widget")
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.widget)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.pushButton = QtWidgets.QPushButton(self.widget)
self.pushButton.setObjectName("pushButton")
self.verticalLayout_2.addWidget(self.pushButton)
self.widget_2 = QtWidgets.QWidget(self.widget)
self.widget_2.setStyleSheet("background-color: rgb(85, 255, 127);")
self.widget_2.setObjectName("widget_2")
self.verticalLayout_2.addWidget(self.widget_2)
self.verticalLayout.addWidget(self.widget)
self.retranslateUi(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
self.pushButton.setText(_translate("Dialog", "PushButton"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Dialog = QtWidgets.QDialog()
ui = Ui_Dialog()
ui.setupUi(Dialog)
Dialog.show()
sys.exit(app.exec_())

View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE UserProject SYSTEM "UserProject-4.0.dtd">
<!-- eric6 user project file for project py_qml -->
<!-- Saved: 2018-04-16, 21:51:59 -->
<!-- Copyright (C) 2018 , -->
<UserProject version="4.0"/>

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Tasks SYSTEM "Tasks-6.0.dtd">
<!-- eric6 tasks file for project py_qml -->
<!-- Saved: 2018-04-16, 21:51:59 -->
<Tasks version="6.0">
<ProjectScanFilter></ProjectScanFilter>
</Tasks>

View file

@ -0,0 +1,63 @@
import QtQuick 2.8
import QtQuick.Window 2.2
import QtQuick.Controls 2.2
import QtQuick.Controls.Material 2.0
import QtQuick.Layouts 1.0
Rectangle {
id: rectangle
visible: true
width: 300
height: 300
color: "#0e0c0c"
clip: false
GridLayout {
anchors.leftMargin: 0
anchors.topMargin: 0
anchors.rightMargin: 107
anchors.bottomMargin: 0
anchors.fill: parent
rows: 3
columns: 2
Slider {
id: slider
Layout.columnSpan: 2
value: 0.5
}
Switch {
id: switch1
text: qsTr("Switch")
Layout.columnSpan: 2
}
ProgressBar {
id: progressBar
Layout.columnSpan: 2
value: 0.5
}
RadioButton {
id: radioButton
text: qsTr("Radio Button")
checked: true
}
}
Rectangle {
id: rectangle1
x: 183
y: -86
width: 200
height: 100
color: "#514e4e"
anchors.right: parent.right
anchors.rightMargin: -80
anchors.bottom: parent.top
anchors.bottomMargin: 0
rotation: 45
}
}

View file

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Project SYSTEM "Project-5.1.dtd">
<!-- eric project file for project py_qml -->
<!-- Saved: 2018-04-16, 21:43:34 -->
<!-- Copyright (C) 2018 , -->
<Project version="5.1">
<Language>en_US</Language>
<Hash>f9e9b523848f67179e680306c360ec26235c78df</Hash>
<ProgLanguage mixed="0">Python3</ProgLanguage>
<ProjectType>PyQt5</ProjectType>
<Version>0.1</Version>
<Author></Author>
<Email></Email>
<Eol index="0"/>
<Sources>
<Source>Ui_py_qml.py</Source>
<Source>py_qml.py</Source>
</Sources>
<Forms>
<Form>py_qml.ui</Form>
</Forms>
<Translations/>
<Resources/>
<Interfaces/>
<Others/>
<Vcs>
<VcsType>None</VcsType>
</Vcs>
<FiletypeAssociations>
<FiletypeAssociation pattern="*.e4p" type="OTHERS"/>
<FiletypeAssociation pattern="*.idl" type="INTERFACES"/>
<FiletypeAssociation pattern="*.md" type="OTHERS"/>
<FiletypeAssociation pattern="*.py" type="SOURCES"/>
<FiletypeAssociation pattern="*.py3" type="SOURCES"/>
<FiletypeAssociation pattern="*.pyw" type="SOURCES"/>
<FiletypeAssociation pattern="*.pyw3" type="SOURCES"/>
<FiletypeAssociation pattern="*.qm" type="TRANSLATIONS"/>
<FiletypeAssociation pattern="*.qrc" type="RESOURCES"/>
<FiletypeAssociation pattern="*.rst" type="OTHERS"/>
<FiletypeAssociation pattern="*.ts" type="TRANSLATIONS"/>
<FiletypeAssociation pattern="*.txt" type="OTHERS"/>
<FiletypeAssociation pattern="*.ui" type="FORMS"/>
<FiletypeAssociation pattern="README" type="OTHERS"/>
<FiletypeAssociation pattern="README.*" type="OTHERS"/>
</FiletypeAssociations>
</Project>

View file

@ -0,0 +1,32 @@
# -*- coding: utf-8 -*-
"""
Module implementing Dialog.
"""
from PyQt5 import QtGui, QtWidgets, QtCore
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtQuickWidgets import *
from Ui_py_qml import Ui_Dialog
class Dialog(QDialog, Ui_Dialog):
def __init__(self, parent=None):
super(Dialog, self).__init__(parent)
self.setupUi(self)
self.m_quickWidget=QQuickWidget();
self.m_quickWidget.setResizeMode(QQuickWidget.SizeRootObjectToView) ;
self.m_quickWidget.setSource(QUrl("py_mqltest.qml"));
self.verticalLayout.addWidget(self.m_quickWidget)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Dialog = Dialog()
Dialog.show()
sys.exit(app.exec_())

View file

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Dialog</class>
<widget class="QDialog" name="Dialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>420</width>
<height>317</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<property name="sizeGripEnabled">
<bool>true</bool>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QWidget" name="widget" native="true">
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QPushButton" name="pushButton">
<property name="text">
<string>PushButton</string>
</property>
</widget>
</item>
<item>
<widget class="QWidget" name="widget_2" native="true">
<property name="styleSheet">
<string notr="true">background-color: rgb(85, 255, 127);</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<resources>
<include location="pyqml.qrc"/>
</resources>
<connections/>
</ui>

View file

@ -0,0 +1,7 @@
# QDialog中嵌入QML界面并缩放控件
使用 QQuickWidget()和QQuickView 嵌入的话.qml文件根节点不能为 Window 和ApplicationWindow,
只能为 Rectangle 或Item。
见 [QMainWindow中嵌入QML ApplicationWindow界面并缩放控件](../QQmlApplicationEngine之qml嵌入qtwidget_qt5.8以上)
![截图2](ScreenShot/2.gif)

Binary file not shown.

After

Width:  |  Height:  |  Size: 853 KiB

View file

@ -0,0 +1,37 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'D:\pyPro\py_qml.ui'
#
# Created by: PyQt5 UI code generator 5.9.2
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(402, 518)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget)
self.verticalLayout.setObjectName("verticalLayout")
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())

View file

@ -0,0 +1,61 @@
/****************************************************************************
**
** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:FDL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
** $QT_END_LICENSE$
**
****************************************************************************/
/*!
\example gallery
\title Qt Quick Controls 2 - Gallery
\ingroup qtquickcontrols2-examples
\brief A gallery of controls.
\raw HTML
<div class="table"><table style="background:transparent; border:0px">
<tr><td style="border:0px">
\endraw
\image qtquickcontrols2-gallery-welcome.png
\caption Welcome Screen
\raw HTML
</td><td style="border:0px">
\endraw
\image qtquickcontrols2-gallery-drawer.png
\caption Side Drawer
\raw HTML
</td><td style="border:0px">
\endraw
\image qtquickcontrols2-gallery-menu.png
\caption Options Menu
\raw HTML
</td></tr>
</table></div>
\endraw
The gallery example is a simple application with a drawer menu that contains
all the \l {Qt Quick Controls 2}. Each menu item opens a page that shows the
graphical appearance of a control, allows you to interact with the control,
and explains in which circumstances it is handy to use this control.
\include examples-run.qdocinc
*/

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 768 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 B

Some files were not shown because too many files have changed in this diff Show more