diff --git a/partner_625781186/5.hoverMenu/BaseElement.py b/partner_625781186/5.hoverMenu/BaseElement.py deleted file mode 100644 index 03db6c4..0000000 --- a/partner_625781186/5.hoverMenu/BaseElement.py +++ /dev/null @@ -1,215 +0,0 @@ -# -*- 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) diff --git a/partner_625781186/5.hoverMenu/Documentation/5.hoverMenu.BaseElement.html b/partner_625781186/5.hoverMenu/Documentation/5.hoverMenu.BaseElement.html deleted file mode 100644 index 16529e1..0000000 --- a/partner_625781186/5.hoverMenu/Documentation/5.hoverMenu.BaseElement.html +++ /dev/null @@ -1,268 +0,0 @@ - - -5.hoverMenu.BaseElement - - - - -

5.hoverMenu.BaseElement

-

-description: 抽象类模块 -

-Created on 2018年7月7日 -

-email: 625781186@qq.com -

-

Global Attributes

- - -
None
-

Classes

- - - - - - - - - - - - - - -
BaseButton
BaseMenuWidget
BaseTable
SingeleWidget菜单条的每个框。
-

Functions

- - - - - -
showERROR
-

- -

BaseButton

- -

Derived from

-QPushButton -

Class Attributes

- - -
None
-

Class Methods

- - -
None
-

Methods

- - - - - - - - - - - - - - -
BaseButton
_createLabelpath:主菜单图标的路径。
_todo每个按钮要重新实现的功能函数。
resizeEvent
-

Static Methods

- - -
None
- -

BaseButton (Constructor)

-BaseButton(parent=None) - -

BaseButton._createLabel

-_createLabel(path) -

- path:主菜单图标的路径。 -

-

BaseButton._todo

-_todo(*args, **kwgs) -

- 每个按钮要重新实现的功能函数。 -

-

BaseButton.resizeEvent

-resizeEvent(e) - -
Up
-

- -

BaseMenuWidget

- -

Derived from

-QWidget -

Class Attributes

- - -
None
-

Class Methods

- - -
None
-

Methods

- - - - - - - - - - - - - - - - - -
BaseMenuWidget_hideFlag__Menu: 0时隐藏,1时显示;
_deleteSomething
_showSomething
enterEvent
leaveEvent
-

Static Methods

- - -
None
- -

BaseMenuWidget (Constructor)

-BaseMenuWidget(parent=None) -

- _hideFlag__Menu: 0时隐藏,1时显示; -

-

BaseMenuWidget._deleteSomething

-_deleteSomething() - -

BaseMenuWidget._showSomething

-_showSomething(**kwgs) - -

BaseMenuWidget.enterEvent

-enterEvent(e) - -

BaseMenuWidget.leaveEvent

-leaveEvent(e) - -
Up
-

- -

BaseTable

- -

Derived from

-QTableWidget -

Class Attributes

- - -
None
-

Class Methods

- - -
None
-

Methods

- - - - - -
BaseTable
-

Static Methods

- - -
None
- -

BaseTable (Constructor)

-BaseTable(parent=None) - -
Up
-

- -

SingeleWidget

-

- 菜单条的每个框。 -

-

Derived from

-QWidget -

Class Attributes

- - -
None
-

Class Methods

- - -
None
-

Methods

- - - - - - - - - - - - - - - - - -
SingeleWidget_hideFlag__Button: 0 表明没有显示弹窗;1表示显示了弹窗。
_creatMenuMain.py中被调用。把LX类实例化。
_jugement离开上面窗体之后80ms, 1:进入旁边的菜单框;2:进入弹出的菜单。
enterEvent鼠标移入label后 , _hideFlag__Button=1,表明显示了弹窗。
leaveEvent离开时判断是否显示了窗体,80ms后发射到_jugement去检测。
-

Static Methods

- - -
None
- -

SingeleWidget (Constructor)

-SingeleWidget(parent=None) -

- _hideFlag__Button: 0 表明没有显示弹窗;1表示显示了弹窗。 -

-

SingeleWidget._creatMenu

-_creatMenu(L_Name, parent) -

- Main.py中被调用。把LX类实例化。 -

-

SingeleWidget._jugement

-_jugement() -

- 离开上面窗体之后80ms, 1:进入旁边的菜单框;2:进入弹出的菜单。 -

-

SingeleWidget.enterEvent

-enterEvent(e) -

-鼠标移入label后 , _hideFlag__Button=1,表明显示了弹窗。 -

-

SingeleWidget.leaveEvent

-leaveEvent(e) -

- 离开时判断是否显示了窗体,80ms后发射到_jugement去检测。 -

-
Up
-

- -

showERROR

-showERROR() - -
Up
-
- \ No newline at end of file diff --git a/partner_625781186/5.hoverMenu/Documentation/5.hoverMenu.BaseElement.md b/partner_625781186/5.hoverMenu/Documentation/5.hoverMenu.BaseElement.md deleted file mode 100644 index 0c12e91..0000000 --- a/partner_625781186/5.hoverMenu/Documentation/5.hoverMenu.BaseElement.md +++ /dev/null @@ -1,252 +0,0 @@ - - - - - -

5.hoverMenu.BaseElement

-

-description: 抽象类模块 -

-Created on 2018年7月7日 -

-email: 625781186@qq.com -

-

Global Attributes

- - -
None
-

Classes

- - - - - - - - - - - - - - -
BaseButton
BaseMenuWidget
BaseTable
SingeleWidget菜单条的每个框。
-

Functions

- - - - - -
showERROR
-

- -

BaseButton

- -

Derived from

-QPushButton -

Class Attributes

- - -
None
-

Class Methods

- - -
None
-

Methods

- - - - - - - - - - - - - - -
BaseButton
_createLabelpath:主菜单图标的路径。
_todo每个按钮要重新实现的功能函数。
resizeEvent
-

Static Methods

- - -
None
- -

BaseButton (Constructor)

-BaseButton(parent=None) - -

BaseButton._createLabel

-_createLabel(path) -

- path:主菜单图标的路径。 -

-

BaseButton._todo

-_todo(*args, **kwgs) -

- 每个按钮要重新实现的功能函数。 -

-

BaseButton.resizeEvent

-resizeEvent(e) - -
Up
-

- -

BaseMenuWidget

- -

Derived from

-QWidget -

Class Attributes

- - -
None
-

Class Methods

- - -
None
-

Methods

- - - - - - - - - - - - - - - - - -
BaseMenuWidget_hideFlag__Menu: 0时隐藏,1时显示;
_deleteSomething
_showSomething
enterEvent
leaveEvent
-

Static Methods

- - -
None
- -

BaseMenuWidget (Constructor)

-BaseMenuWidget(parent=None) -

- _hideFlag__Menu: 0时隐藏,1时显示; -

-

BaseMenuWidget._deleteSomething

-_deleteSomething() - -

BaseMenuWidget._showSomething

-_showSomething(**kwgs) - -

BaseMenuWidget.enterEvent

-enterEvent(e) - -

BaseMenuWidget.leaveEvent

-leaveEvent(e) - -
Up
-

- -

BaseTable

- -

Derived from

-QTableWidget -

Class Attributes

- - -
None
-

Class Methods

- - -
None
-

Methods

- - - - - -
BaseTable
-

Static Methods

- - -
None
- -

BaseTable (Constructor)

-BaseTable(parent=None) - -
Up
-

- -

SingeleWidget

-

- 菜单条的每个框。 -

-

Derived from

-QWidget -

Class Attributes

- - -
None
-

Class Methods

- - -
None
-

Methods

- - - - - - - - - - - - - - - - - -
SingeleWidget_hideFlag__Button: 0 表明没有显示弹窗;1表示显示了弹窗。
_creatMenuMain.py中被调用。把LX类实例化。
_jugement离开上面窗体之后80ms, 1:进入旁边的菜单框;2:进入弹出的菜单。
enterEvent鼠标移入label后 , _hideFlag__Button=1,表明显示了弹窗。
leaveEvent离开时判断是否显示了窗体,80ms后发射到_jugement去检测。
-

Static Methods

- - -
None
- -

SingeleWidget (Constructor)

-SingeleWidget(parent=None) -

- _hideFlag__Button: 0 表明没有显示弹窗;1表示显示了弹窗。 -

-

SingeleWidget._creatMenu

-_creatMenu(L_Name, parent) -

- Main.py中被调用。把LX类实例化。 -

-

SingeleWidget._jugement

-_jugement() -

- 离开上面窗体之后80ms, 1:进入旁边的菜单框;2:进入弹出的菜单。 -

-

SingeleWidget.enterEvent

-enterEvent(e) -

-鼠标移入label后 , _hideFlag__Button=1,表明显示了弹窗。 -

-

SingeleWidget.leaveEvent

-leaveEvent(e) -

- 离开时判断是否显示了窗体,80ms后发射到_jugement去检测。 -

-
Up
-

- -

showERROR

-showERROR() - -
Up
-
- \ No newline at end of file diff --git a/partner_625781186/5.hoverMenu/Documentation/5.hoverMenu.CommonHelper.html b/partner_625781186/5.hoverMenu/Documentation/5.hoverMenu.CommonHelper.html deleted file mode 100644 index 4964270..0000000 --- a/partner_625781186/5.hoverMenu/Documentation/5.hoverMenu.CommonHelper.html +++ /dev/null @@ -1,78 +0,0 @@ - - -5.hoverMenu.CommonHelper - - - - -

5.hoverMenu.CommonHelper

-

-读取CSS用模块。 -

-

Global Attributes

- - -
None
-

Classes

- - - - - -
CommonHelper
-

Functions

- - -
None
-

- -

CommonHelper

- -

Derived from

-None -

Class Attributes

- - -
None
-

Class Methods

- - -
None
-

Methods

- - - - - -
CommonHelper
-

Static Methods

- - - - - -
readQss
- -

CommonHelper (Constructor)

-CommonHelper() - -

CommonHelper.readQss (static)

-readQss() - -
Up
-
- \ No newline at end of file diff --git a/partner_625781186/5.hoverMenu/Documentation/5.hoverMenu.CommonHelper.md b/partner_625781186/5.hoverMenu/Documentation/5.hoverMenu.CommonHelper.md deleted file mode 100644 index 92ad2d1..0000000 --- a/partner_625781186/5.hoverMenu/Documentation/5.hoverMenu.CommonHelper.md +++ /dev/null @@ -1,62 +0,0 @@ - - - - - -

5.hoverMenu.CommonHelper

-

-读取CSS用模块。 -

-

Global Attributes

- - -
None
-

Classes

- - - - - -
CommonHelper
-

Functions

- - -
None
-

- -

CommonHelper

- -

Derived from

-None -

Class Attributes

- - -
None
-

Class Methods

- - -
None
-

Methods

- - - - - -
CommonHelper
-

Static Methods

- - - - - -
readQss
- -

CommonHelper (Constructor)

-CommonHelper() - -

CommonHelper.readQss (static)

-readQss() - -
Up
-
- \ No newline at end of file diff --git a/partner_625781186/5.hoverMenu/Documentation/5.hoverMenu.Main.html b/partner_625781186/5.hoverMenu/Documentation/5.hoverMenu.Main.html deleted file mode 100644 index 45831f1..0000000 --- a/partner_625781186/5.hoverMenu/Documentation/5.hoverMenu.Main.html +++ /dev/null @@ -1,95 +0,0 @@ - - -5.hoverMenu.Main - - - - -

5.hoverMenu.Main

-

-主函数. -

-description: pyqt5悬浮下拉菜单 -

-Created on 2018年7月7日 -

-email: 625781186@qq.com -

-

Global Attributes

- - -
None
-

Classes

- - - - - -
MainWindowClass documentation goes here.
-

Functions

- - -
None
-

- -

MainWindow

-

- Class documentation goes here. -

-

Derived from

-QMainWindow, Ui_MainWindow -

Class Attributes

- - -
app
qssStyle
styleFile
ui
-

Class Methods

- - -
None
-

Methods

- - - - - - - - -
MainWindowConstructor
enterEvent自定义标题栏需要重置光标。
-

Static Methods

- - -
None
- -

MainWindow (Constructor)

-MainWindow(parent=None) -

- Constructor -

-
parent (QWidget)
-
-reference to the parent widget -
-
-

MainWindow.enterEvent

-enterEvent(e) -

-自定义标题栏需要重置光标。 -

-
Up
-
- \ No newline at end of file diff --git a/partner_625781186/5.hoverMenu/Documentation/5.hoverMenu.Main.md b/partner_625781186/5.hoverMenu/Documentation/5.hoverMenu.Main.md index 75f0184..6401bf9 100644 --- a/partner_625781186/5.hoverMenu/Documentation/5.hoverMenu.Main.md +++ b/partner_625781186/5.hoverMenu/Documentation/5.hoverMenu.Main.md @@ -1,6 +1,10 @@ +5.hoverMenu.Main + +

5.hoverMenu.Main

@@ -11,6 +15,8 @@ description: pyqt5悬浮下拉菜单

Created on 2018年7月7日

+Author: 人间白头 +

email: 625781186@qq.com

Global Attributes

@@ -21,7 +27,7 @@ email: 625781186@qq.com - +
MainWindowClass documentation goes here.主窗口.

Functions

@@ -32,13 +38,13 @@ email: 625781186@qq.com

MainWindow

- Class documentation goes here. + 主窗口.

Derived from

-QMainWindow, Ui_MainWindow +Ui_MainWindow, QMainWindow

Class Attributes

- +
app
qssStyle
styleFile
ui
app
ui

Class Methods

@@ -48,10 +54,16 @@ QMainWindow, Ui_MainWindow
- + - - + + + + + + + +
MainWindowConstructor
enterEvent自定义标题栏需要重置光标。__initUI一些无法在基础元素累中初始化的参数。
readCSS用于设置样式,SingeleWidget类中也需要用到。
start_animation

Static Methods

@@ -62,18 +74,23 @@ QMainWindow, Ui_MainWindow

MainWindow (Constructor)

MainWindow(parent=None)

- Constructor -

-
parent (QWidget)
-
-reference to the parent widget -
-
-

MainWindow.enterEvent

-enterEvent(e) + +

+ +

+

MainWindow.__initUI

+__initUI()

-自定义标题栏需要重置光标。 -

+ 一些无法在基础元素累中初始化的参数。 +

+

MainWindow.readCSS

+readCSS(obj) +

+ 用于设置样式,SingeleWidget类中也需要用到。 +

+

MainWindow.start_animation

+start_animation(checked) +
Up

\ No newline at end of file diff --git a/partner_625781186/5.hoverMenu/Documentation/5.hoverMenu.Menu.html b/partner_625781186/5.hoverMenu/Documentation/5.hoverMenu.Menu.html deleted file mode 100644 index f12988b..0000000 --- a/partner_625781186/5.hoverMenu/Documentation/5.hoverMenu.Menu.html +++ /dev/null @@ -1,358 +0,0 @@ - - -5.hoverMenu.Menu - - - - -

5.hoverMenu.Menu

-

-description: 要增加菜单栏时,在这里添加。
-

-Created on 2018年7月7日 -

-email: 625781186@qq.com -

-BX: 主菜单按钮;
-LX:子菜单按钮-继承了UI类和 隐藏基类;
-

-

Global Attributes

- - -
None
-

Classes

- - - - - - - - - - - - - - - - - - - - - - - - - - -
B1
B2
B3
B4
L1
L2
L3
L4
-

Functions

- - -
None
-

- -

B1

- -

Derived from

-BaseButton -

Class Attributes

- - -
None
-

Class Methods

- - -
None
-

Methods

- - - - - - - - -
B1
_todo
-

Static Methods

- - -
None
- -

B1 (Constructor)

-B1(parent=None) - -

B1._todo

-_todo(*args, **kwgs) - -
Up
-

- -

B2

- -

Derived from

-BaseButton -

Class Attributes

- - -
None
-

Class Methods

- - -
None
-

Methods

- - - - - - - - -
B2
_todo
-

Static Methods

- - -
None
- -

B2 (Constructor)

-B2(parent=None) - -

B2._todo

-_todo(*args, **kwgs) - -
Up
-

- -

B3

- -

Derived from

-BaseButton -

Class Attributes

- - -
None
-

Class Methods

- - -
None
-

Methods

- - - - - - - - -
B3
_todo
-

Static Methods

- - -
None
- -

B3 (Constructor)

-B3(parent=None) - -

B3._todo

-_todo(*args, **kwgs) - -
Up
-

- -

B4

- -

Derived from

-BaseButton -

Class Attributes

- - -
None
-

Class Methods

- - -
None
-

Methods

- - - - - - - - -
B4
_todo
-

Static Methods

- - -
None
- -

B4 (Constructor)

-B4(parent=None) - -

B4._todo

-_todo(*args, **kwgs) - -
Up
-

- -

L1

- -

Derived from

-Ui_L1.Ui_Form, BaseMenuWidget -

Class Attributes

- - -
None
-

Class Methods

- - -
None
-

Methods

- - - - - - - - -
L1
_showSomething
-

Static Methods

- - -
None
- -

L1 (Constructor)

-L1(parent=None) - -

L1._showSomething

-_showSomething(item) - -
Up
-

- -

L2

- -

Derived from

-Ui_L2.Ui_Form, BaseMenuWidget -

Class Attributes

- - -
None
-

Class Methods

- - -
None
-

Methods

- - - - - - - - -
L2
_showSomething
-

Static Methods

- - -
None
- -

L2 (Constructor)

-L2(parent=None) - -

L2._showSomething

-_showSomething(item) - -
Up
-

- -

L3

- -

Derived from

-Ui_L3.Ui_Form, BaseMenuWidget -

Class Attributes

- - -
None
-

Class Methods

- - -
None
-

Methods

- - - - - - - - -
L3
_showSomething
-

Static Methods

- - -
None
- -

L3 (Constructor)

-L3(parent=None) - -

L3._showSomething

-_showSomething(item) - -
Up
-

- -

L4

- -

Derived from

-Ui_L4.Ui_Form, BaseMenuWidget -

Class Attributes

- - -
None
-

Class Methods

- - -
None
-

Methods

- - - - - - - - -
L4
_showSomething
-

Static Methods

- - -
None
- -

L4 (Constructor)

-L4(parent=None) - -

L4._showSomething

-_showSomething(item) - -
Up
-
- \ No newline at end of file diff --git a/partner_625781186/5.hoverMenu/Documentation/5.hoverMenu.Menu.md b/partner_625781186/5.hoverMenu/Documentation/5.hoverMenu.Menu.md deleted file mode 100644 index a90c371..0000000 --- a/partner_625781186/5.hoverMenu/Documentation/5.hoverMenu.Menu.md +++ /dev/null @@ -1,342 +0,0 @@ - - - - - -

5.hoverMenu.Menu

-

-description: 要增加菜单栏时,在这里添加。
-

-Created on 2018年7月7日 -

-email: 625781186@qq.com -

-BX: 主菜单按钮;
-LX:子菜单按钮-继承了UI类和 隐藏基类;
-

-

Global Attributes

- - -
None
-

Classes

- - - - - - - - - - - - - - - - - - - - - - - - - - -
B1
B2
B3
B4
L1
L2
L3
L4
-

Functions

- - -
None
-

- -

B1

- -

Derived from

-BaseButton -

Class Attributes

- - -
None
-

Class Methods

- - -
None
-

Methods

- - - - - - - - -
B1
_todo
-

Static Methods

- - -
None
- -

B1 (Constructor)

-B1(parent=None) - -

B1._todo

-_todo(*args, **kwgs) - -
Up
-

- -

B2

- -

Derived from

-BaseButton -

Class Attributes

- - -
None
-

Class Methods

- - -
None
-

Methods

- - - - - - - - -
B2
_todo
-

Static Methods

- - -
None
- -

B2 (Constructor)

-B2(parent=None) - -

B2._todo

-_todo(*args, **kwgs) - -
Up
-

- -

B3

- -

Derived from

-BaseButton -

Class Attributes

- - -
None
-

Class Methods

- - -
None
-

Methods

- - - - - - - - -
B3
_todo
-

Static Methods

- - -
None
- -

B3 (Constructor)

-B3(parent=None) - -

B3._todo

-_todo(*args, **kwgs) - -
Up
-

- -

B4

- -

Derived from

-BaseButton -

Class Attributes

- - -
None
-

Class Methods

- - -
None
-

Methods

- - - - - - - - -
B4
_todo
-

Static Methods

- - -
None
- -

B4 (Constructor)

-B4(parent=None) - -

B4._todo

-_todo(*args, **kwgs) - -
Up
-

- -

L1

- -

Derived from

-Ui_L1.Ui_Form, BaseMenuWidget -

Class Attributes

- - -
None
-

Class Methods

- - -
None
-

Methods

- - - - - - - - -
L1
_showSomething
-

Static Methods

- - -
None
- -

L1 (Constructor)

-L1(parent=None) - -

L1._showSomething

-_showSomething(item) - -
Up
-

- -

L2

- -

Derived from

-Ui_L2.Ui_Form, BaseMenuWidget -

Class Attributes

- - -
None
-

Class Methods

- - -
None
-

Methods

- - - - - - - - -
L2
_showSomething
-

Static Methods

- - -
None
- -

L2 (Constructor)

-L2(parent=None) - -

L2._showSomething

-_showSomething(item) - -
Up
-

- -

L3

- -

Derived from

-Ui_L3.Ui_Form, BaseMenuWidget -

Class Attributes

- - -
None
-

Class Methods

- - -
None
-

Methods

- - - - - - - - -
L3
_showSomething
-

Static Methods

- - -
None
- -

L3 (Constructor)

-L3(parent=None) - -

L3._showSomething

-_showSomething(item) - -
Up
-

- -

L4

- -

Derived from

-Ui_L4.Ui_Form, BaseMenuWidget -

Class Attributes

- - -
None
-

Class Methods

- - -
None
-

Methods

- - - - - - - - -
L4
_showSomething
-

Static Methods

- - -
None
- -

L4 (Constructor)

-L4(parent=None) - -

L4._showSomething

-_showSomething(item) - -
Up
-
- \ No newline at end of file diff --git a/partner_625781186/5.hoverMenu/Documentation/index-5.hoverMenu.html b/partner_625781186/5.hoverMenu/Documentation/index-5.hoverMenu.html deleted file mode 100644 index bb42618..0000000 --- a/partner_625781186/5.hoverMenu/Documentation/index-5.hoverMenu.html +++ /dev/null @@ -1,42 +0,0 @@ - - -5.hoverMenu - - - - -

5.hoverMenu

- - - -

Modules

- - - - - - - - - - - - - - -
BaseElementdescription: 抽象类模块
CommonHelper读取CSS用模块。
Main主函数.
Menudescription: 要增加菜单栏时,在这里添加。
- \ No newline at end of file diff --git a/partner_625781186/5.hoverMenu/Documentation/index-5.hoverMenu.md b/partner_625781186/5.hoverMenu/Documentation/index-5.hoverMenu.md deleted file mode 100644 index 9e28799..0000000 --- a/partner_625781186/5.hoverMenu/Documentation/index-5.hoverMenu.md +++ /dev/null @@ -1,26 +0,0 @@ - - - - - -

5.hoverMenu

- - - -

Modules

- - - - - - - - - - - - - - -
BaseElementdescription: 抽象类模块
CommonHelper读取CSS用模块。
Main主函数.
Menudescription: 要增加菜单栏时,在这里添加。
- \ No newline at end of file diff --git a/partner_625781186/5.hoverMenu/Documentation/index.html b/partner_625781186/5.hoverMenu/Documentation/index.html deleted file mode 100644 index a899830..0000000 --- a/partner_625781186/5.hoverMenu/Documentation/index.html +++ /dev/null @@ -1,33 +0,0 @@ - - -Table of contents - - - - -

Table of contents

- - -

Packages

- - - - - -
hoverMenu
- - \ No newline at end of file diff --git a/partner_625781186/5.hoverMenu/Main.py b/partner_625781186/5.hoverMenu/Main.py index b35dfcf..5e57736 100644 --- a/partner_625781186/5.hoverMenu/Main.py +++ b/partner_625781186/5.hoverMenu/Main.py @@ -7,57 +7,130 @@ description: pyqt5悬浮下拉菜单 Created on 2018年7月7日 +Author: 人间白头 + email: 625781186@qq.com """ +import sys from PyQt5 import QtGui, QtWidgets, QtCore from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * -from Menu import * +from U_FuncWidget.Menu import * from Ui_Main import Ui_MainWindow -#读取CSS用 -from CommonHelper import CommonHelper -class MainWindow(QMainWindow, Ui_MainWindow): +from Tools.CommonHelper import CommonHelper #读取CSS用 +from Tools.qmf_showError import w_showERROR #弹窗报错 + + +class MainWindow(Ui_MainWindow, QMainWindow): """ - 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) +# 用于存储界面是否需要删除, +# 目前只支持9个菜单按钮。 + self.Wid_Obj={ + "b1":{}, "b2":{}, "b3":{}, "b4":{}, "b5":{}, + "b6":{}, "b7":{}, "b8":{}, "b9":{}, + } + + self.__initUI() + + def __initUI(self): + ''' + 一些无法在基础元素累中初始化的参数。 + ''' + + # 有用判断最长的label的长度 + label_width = 0 + + self.label_list = [] + + # 从上部分窗体的子对象中循环选取出self.WX + for WX in self.topWidget.children(): + # 判断是不是WX窗体 + name = WX.objectName()[0] + if name =="W" and isinstance(WX, SingeleWidget): + num = WX.objectName()[1] + # 从全局中取 LX类 + LX = globals()["L%s"%num] + del WX.m_menu + WX.m_menu = LX(self) + + label = WX.findChild(QLabel) + self.label_list.append(label) + + # 判断文字最长的label + if label_width < len(label.text()): + label_width = len(label.text()) + + # 用空格填充label, 使其宽度统一 + for label in self.label_list: + + length = label_width - len(label.text()) + size = length + text = label.text() + + if length%2: + text = ' '+ text +' ' + text = ' '*size+ text +' '*size + label.setText(text) + + self.readCSS(self) + + self.DEFAULT = {} + self.animation = QPropertyAnimation(self.topWidget, b'maximumHeight' ) + self.toggleButton.clicked.connect(self.start_animation) + + def readCSS(self, obj): + ''' + 用于设置样式,SingeleWidget类中也需要用到。 + ''' + styleFile = './Tools/style.css' + qssStyle = CommonHelper.readQss( styleFile ) + obj.setStyleSheet( qssStyle ) + + def start_animation(self, checked): + + CurrentHeight = self.topWidget.height() + if self.DEFAULT == {}: + self.DEFAULT["len"] = CurrentHeight + if CurrentHeight == 0: + direction = QAbstractAnimation.Backward + self.toggleButton.setText("↑") + else: + direction = QAbstractAnimation.Forward + self.toggleButton.setText("↓") + self.animation.setDirection(direction) + self.animation.setDuration(150) + self.animation.setStartValue(self.DEFAULT["len"]) + self.animation.setEndValue(0) + self.animation.start() + +# 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() - + +# import qdarkstyle +# app.setStyleSheet(qdarkstyle.load_stylesheet_pyqt5()) + + ui.show() + sys.exit(app.exec_()) diff --git a/partner_625781186/5.hoverMenu/Main.ui b/partner_625781186/5.hoverMenu/Main.ui index 51e778f..78f7ecb 100644 --- a/partner_625781186/5.hoverMenu/Main.ui +++ b/partner_625781186/5.hoverMenu/Main.ui @@ -7,21 +7,55 @@ 0 0 - 797 - 536 + 908 + 518 MainWindow - #MainWindow { border:none;} + * #MainWindow { border:none;} + #widget{ border:none; } +/*#topWidget QWidget{ background-color: green; } +#widget QLabel{ background-color: rgb(85, 0, 255); }*/ + #centralWidget {border:none;} + + 0 + + + 0 + + + 2 + + + 0 + + + 0 + + + + + background-color:#1d4371; + +border-radius:0px; + + + + + + true + + + @@ -46,9 +80,9 @@ - #widget{ border:none; } + - + 0 @@ -61,282 +95,14 @@ 0 - - - - - 9 - - - 9 - - - 9 - - - 9 - - - - - - - - - - - - 店铺数据 - - - Qt::AlignCenter - - - - - - - Qt::Horizontal - - - QSizePolicy::Preferred - - - - 10 - 20 - - - - - - - - Qt::Horizontal - - - QSizePolicy::Preferred - - - - 10 - 20 - - - - - - - - - - - - 9 - - - 9 - - - 9 - - - 9 - - - - - 竞品分析 - - - Qt::AlignCenter - - - - - - - - - - - - - - Qt::Horizontal - - - QSizePolicy::Preferred - - - - 10 - 20 - - - - - - - - Qt::Horizontal - - - QSizePolicy::Preferred - - - - 10 - 20 - - - - - - - - - - - - 9 - - - 9 - - - 9 - - - 9 - - - - - Qt::Horizontal - - - QSizePolicy::Preferred - - - - 10 - 20 - - - - - - - - false - - - - - - - - - - 直通车工具工具工具 - - - Qt::AlignCenter - - - - - - - Qt::Horizontal - - - QSizePolicy::Preferred - - - - 10 - 20 - - - - - - - - - - - - 9 - - - 9 - - - 9 - - - 9 - - - - - Qt::Horizontal - - - QSizePolicy::Preferred - - - - 10 - 20 - - - - - - - - false - - - - - - - - - - 直通 - - - Qt::AlignCenter - - - - - - - Qt::Horizontal - - - QSizePolicy::Preferred - - - - 10 - 20 - - - - - - - - + + 2 + + + + 6 + @@ -359,31 +125,228 @@ - - - - Qt::Horizontal - - - - 25 - 20 - - - + + + + + 9 + + + 9 + + + 9 + + + 9 + + + + + + + + 0 + 0 + + + + + + + + + + + + + + 0 + 0 + + + + 店铺数据 + + + Qt::AlignCenter + + + + + + + + + + + 9 + + + 9 + + + 9 + + + 9 + + + + + + + + 0 + 0 + + + + + + + + + + + + + + 0 + 0 + + + + 店铺 + + + Qt::AlignCenter + + + + + + + + + + + 9 + + + 9 + + + 9 + + + 9 + + + + + + + + 0 + 0 + + + + + + + + + + + + + + 0 + 0 + + + + 店铺数据 + + + Qt::AlignCenter + + + + + + + + + + + QLayout::SetMinAndMaxSize + + + 9 + + + 9 + + + 9 + + + 9 + + + + + + 0 + 0 + + + + 店店店 + + + Qt::AlignCenter + + + false + + + + + + + + + + 0 + 0 + + + + + + + + + + + - + 0 0 - + 0 @@ -423,27 +386,27 @@ B1 QPushButton -
Menu
+
U_FuncWidget.Menu
B2 QPushButton -
Menu
+
U_FuncWidget.Menu
B3 QPushButton -
Menu
+
U_FuncWidget.Menu
B4 QPushButton -
Menu
+
U_FuncWidget.Menu
SingeleWidget QWidget -
BaseElement
+
U_FuncWidget.BaseElement
1
diff --git a/partner_625781186/5.hoverMenu/Menu.py b/partner_625781186/5.hoverMenu/Menu.py deleted file mode 100644 index ddcd8f1..0000000 --- a/partner_625781186/5.hoverMenu/Menu.py +++ /dev/null @@ -1,119 +0,0 @@ -# -*- coding: utf-8 -*- -''' -description: 要增加菜单栏时,在这里添加。
- -Created on 2018年7月7日 - -email: 625781186@qq.com - -BX: 主菜单按钮;
-LX:子菜单按钮-继承了UI类和 隐藏基类;
-''' - -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) - - -#============================================= 智钻工具 ======================================= diff --git a/partner_625781186/5.hoverMenu/CommonHelper.py b/partner_625781186/5.hoverMenu/Tools/CommonHelper.py similarity index 100% rename from partner_625781186/5.hoverMenu/CommonHelper.py rename to partner_625781186/5.hoverMenu/Tools/CommonHelper.py diff --git a/partner_625781186/5.hoverMenu/Tools/Ui_Main.py b/partner_625781186/5.hoverMenu/Tools/Ui_Main.py new file mode 100644 index 0000000..4e468e5 --- /dev/null +++ b/partner_625781186/5.hoverMenu/Tools/Ui_Main.py @@ -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_()) + diff --git a/partner_625781186/5.hoverMenu/Tools/__init__.py b/partner_625781186/5.hoverMenu/Tools/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/partner_625781186/5.hoverMenu/Tools/qmf_showError.py b/partner_625781186/5.hoverMenu/Tools/qmf_showError.py new file mode 100644 index 0000000..6b40d3f --- /dev/null +++ b/partner_625781186/5.hoverMenu/Tools/qmf_showError.py @@ -0,0 +1,52 @@ + +""" +Created on 2018-09-09 + +description: 错误提示窗模块 + +author: 625781186@qq.com + +site: https://github.com/625781186 +""" + + +from PyQt5 import QtGui, QtWidgets, QtCore +from PyQt5.QtCore import * +from PyQt5.QtGui import * +from PyQt5.QtWidgets import * + +import traceback + +def w_showERROR(widget=None): + + errmsg = traceback.format_exc() +# QMessageBox.warning(QWidget(), '请确认', errmsg, +# QMessageBox.Ok) + msg = QErrorMessage(widget) + msg.setModal(True) + msg.showMessage(errmsg) + +def f_showERROR(func, *args, **kwargs): + def _doWhat(*args, **kwargs): + try: + func(*args, **kwargs) + except: + import sys + app =QApplication(sys.argv) + errmsg = traceback.format_exc() + print(errmsg) + gitMsg=QMessageBox() + + gitMsg.setWindowTitle("错误") + + gitMsg.setText(errmsg) + gitMsg.setDetailedText(errmsg) + gitMsg.setStandardButtons(QMessageBox.Ok) + gitMsg.buttons()[-1].click() + + gitMsg.exec_() + + sys.exit(app.exec_()) + return + + return _doWhat diff --git a/partner_625781186/5.hoverMenu/style.css b/partner_625781186/5.hoverMenu/Tools/style.css similarity index 97% rename from partner_625781186/5.hoverMenu/style.css rename to partner_625781186/5.hoverMenu/Tools/style.css index aaf5cd3..32283bd 100644 --- a/partner_625781186/5.hoverMenu/style.css +++ b/partner_625781186/5.hoverMenu/Tools/style.css @@ -1,5 +1,5 @@ /*background-color: #3daee9; */ - #topWidget , TestWidget + #topWidget { color: #eff0f1; background-color: #3daee9; @@ -9,14 +9,10 @@ border-image: none; border: 0px transparent black; outline: 0; - } -TestWidget > QPushButton{ - border-width: 1px; - -} + - #buttomWidget + #bottomWidget { border-image: url(:/static/background.jpg); } @@ -36,10 +32,10 @@ TestWidget > QPushButton{ color: #eff0f1; } - /* QWidget:item:selected + QWidget:item:selected { background-color: #18465d; - } */ + } QWidget:disabled @@ -312,7 +308,23 @@ TestWidget > QPushButton{ { border: 1px transparent black; } + + BaseMenuWidget{ + border:1px solid rgb(17, 66, 116); + } + + QPushButton[M_Action='isTrue'] +{ + border:none ; + border-radius:0px; + } + QPushButton[M_Action='isTrue']:pressed +{ + background-color: #3daee9; + color: #eff0f1; + } + /* --------------------------------------- QPushButton -----------------------------------*/ QPushButton { @@ -351,11 +363,9 @@ TestWidget > QPushButton{ padding-bottom: -17px; } - - QPushButton:checked{ - background-color: #76797C; - border-color: #6A6969; + background-color: #287399; + border-color: #287399; } @@ -534,10 +544,7 @@ TestWidget > QPushButton{ left: 8px; } - BaseMenuWidget{ - border:1px solid rgb(17, 66, 116); - } QTableView { diff --git a/partner_625781186/5.hoverMenu/UCompetitiveProduct2/L2.ui b/partner_625781186/5.hoverMenu/UCompetitiveProduct2/L2.ui deleted file mode 100644 index 7e83928..0000000 --- a/partner_625781186/5.hoverMenu/UCompetitiveProduct2/L2.ui +++ /dev/null @@ -1,103 +0,0 @@ - - - Form - - - - 0 - 0 - 113 - 119 - - - - Form - - - background-color: rgb(85, 170, 255); - - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - - - false - - - false - - - true - - - - - - - - - - - - - - - - - - - 新建列 - - - - - 评价分析 - - - AlignCenter - - - - - SKU分析 - - - AlignCenter - - - - - 流量分析 - - - AlignCenter - - - - - - - - - BaseTable - QTableWidget -
BaseElement
-
-
- - -
diff --git a/partner_625781186/5.hoverMenu/UCompetitiveProduct2/SKU_Widget.py~ b/partner_625781186/5.hoverMenu/UCompetitiveProduct2/SKU_Widget.py~ deleted file mode 100644 index 45931f7..0000000 --- a/partner_625781186/5.hoverMenu/UCompetitiveProduct2/SKU_Widget.py~ +++ /dev/null @@ -1,34 +0,0 @@ -# -*- 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_()) diff --git a/partner_625781186/5.hoverMenu/UCompetitiveProduct2/Ui_L2.py b/partner_625781186/5.hoverMenu/UCompetitiveProduct2/Ui_L2.py deleted file mode 100644 index 8a08b5b..0000000 --- a/partner_625781186/5.hoverMenu/UCompetitiveProduct2/Ui_L2.py +++ /dev/null @@ -1,74 +0,0 @@ -# -*- 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_()) - diff --git a/partner_625781186/5.hoverMenu/UMarketAnalysis3/L3.ui b/partner_625781186/5.hoverMenu/UMarketAnalysis3/L3.ui deleted file mode 100644 index 0e65b19..0000000 --- a/partner_625781186/5.hoverMenu/UMarketAnalysis3/L3.ui +++ /dev/null @@ -1,103 +0,0 @@ - - - Form - - - - 0 - 0 - 113 - 119 - - - - Form - - - background-color: rgb(85, 170, 255); - - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - - - false - - - false - - - true - - - - - - - - - - - - - - - - - - - 新建列 - - - - - 类目趋势 - - - AlignCenter - - - - - 属性趋势 - - - AlignCenter - - - - - 品牌分析 - - - AlignCenter - - - - - - - - - BaseTable - QTableWidget -
BaseElement
-
-
- - -
diff --git a/partner_625781186/5.hoverMenu/UMarketAnalysis3/Ui_L3.py b/partner_625781186/5.hoverMenu/UMarketAnalysis3/Ui_L3.py deleted file mode 100644 index 6f6df0c..0000000 --- a/partner_625781186/5.hoverMenu/UMarketAnalysis3/Ui_L3.py +++ /dev/null @@ -1,74 +0,0 @@ -# -*- 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_()) - diff --git a/partner_625781186/5.hoverMenu/UStoreData1/L1.ui b/partner_625781186/5.hoverMenu/UStoreData1/L1.ui deleted file mode 100644 index 179c45f..0000000 --- a/partner_625781186/5.hoverMenu/UStoreData1/L1.ui +++ /dev/null @@ -1,77 +0,0 @@ - - - Form - - - - 0 - 0 - 113 - 119 - - - - Form - - - background-color: rgb(85, 170, 255); - - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - - - false - - - false - - - true - - - - - - - - - 新建列 - - - - - 语音数据 - - - AlignCenter - - - - - - - - - BaseTable - QTableWidget -
BaseElement
-
-
- - -
diff --git a/partner_625781186/5.hoverMenu/UStoreData1/Ui_L1.py b/partner_625781186/5.hoverMenu/UStoreData1/Ui_L1.py deleted file mode 100644 index 09bc6f3..0000000 --- a/partner_625781186/5.hoverMenu/UStoreData1/Ui_L1.py +++ /dev/null @@ -1,60 +0,0 @@ -# -*- 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_()) - diff --git a/partner_625781186/5.hoverMenu/UThroughTrain4/GeographicAnalysis_Widget.py~ b/partner_625781186/5.hoverMenu/UThroughTrain4/GeographicAnalysis_Widget.py~ deleted file mode 100644 index 26a003e..0000000 --- a/partner_625781186/5.hoverMenu/UThroughTrain4/GeographicAnalysis_Widget.py~ +++ /dev/null @@ -1,42 +0,0 @@ -# -*- 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_()) diff --git a/partner_625781186/5.hoverMenu/UThroughTrain4/L4.ui b/partner_625781186/5.hoverMenu/UThroughTrain4/L4.ui deleted file mode 100644 index 51fe33c..0000000 --- a/partner_625781186/5.hoverMenu/UThroughTrain4/L4.ui +++ /dev/null @@ -1,109 +0,0 @@ - - - Form - - - - 0 - 0 - 113 - 119 - - - - Form - - - background-color: rgb(85, 170, 255); - - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - - - Qt::ScrollBarAlwaysOff - - - Qt::ScrollBarAlwaysOff - - - false - - - false - - - true - - - - 1 - - - - - 2 - - - - - 3 - - - - - 新建列 - - - - - 地域分析 - - - AlignCenter - - - - - 实时数据 - - - AlignCenter - - - - - 标签工具 - - - AlignCenter - - - - - - - - - BaseTable - QTableWidget -
BaseElement
-
-
- - -
diff --git a/partner_625781186/5.hoverMenu/UThroughTrain4/Ui_L4.py b/partner_625781186/5.hoverMenu/UThroughTrain4/Ui_L4.py deleted file mode 100644 index 69555c3..0000000 --- a/partner_625781186/5.hoverMenu/UThroughTrain4/Ui_L4.py +++ /dev/null @@ -1,82 +0,0 @@ -# -*- 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_()) - diff --git a/partner_625781186/5.hoverMenu/U_FuncWidget/BaseElement.py b/partner_625781186/5.hoverMenu/U_FuncWidget/BaseElement.py new file mode 100644 index 0000000..276c708 --- /dev/null +++ b/partner_625781186/5.hoverMenu/U_FuncWidget/BaseElement.py @@ -0,0 +1,284 @@ +# -*- coding: utf-8 -*- +''' +description: 抽象类模块 + +Created on 2018年7月7日 + +Author: 人间白头 + +email: 625781186@qq.com + +''' +import sip , functools + +from PyQt5 import QtGui, QtWidgets, QtCore +from PyQt5.QtCore import * +from PyQt5.QtGui import * +from PyQt5.QtWidgets import * + +from Tools.qmf_showError import f_showERROR, w_showERROR +from Tools.CommonHelper import CommonHelper + + +SHOWMENU = {"yes":True , "no":False , "setShow":True , "setHide":False } +ENTERMENU = {"yes":True , "no":False } + +class SingeleWidget(QWidget): + ''' + 菜单栏的每个框。 + ''' + #1 + + Button_hideFlag = SHOWMENU["setHide"] + + def __init__(self, parent=None): + ''' + Button_hideFlag: 0 表明没有显示弹窗;1表示显示了弹窗。 + ''' + super(SingeleWidget, self).__init__(parent) + + # 很重要 , 否则样式背景无效! + self.setAttribute(Qt.WA_StyledBackground, True) + + # 这个m_menu没有用, 有用的是main.py中生成的m_menu + self.m_menu = QWidget() + + # 用来测试qss的 , 可以注释掉 + self.setProperty("WID", "isTrue") + + def enterEvent(self, e): + + #设置菜单窗体的宽度 + self.m_menu.setMinimumWidth(self.width()) + self.m_menu.setMaximumWidth(self.width()) + + #我靠! 把菜单窗体对齐到按钮框 + menu_Pos = self.mapToGlobal( + QPoint( self.parent().x() , + self.parent().height() ) + ) + + self.m_menu.move(menu_Pos) + + self.m_menu.show() + + #表明显示了弹窗 + self.Button_hideFlag = SHOWMENU["setShow"] + + def leaveEvent(self, e): + ''' + 离开时判断是否显示了窗体,80ms后发射到_jugement去检测。 + ''' + if self.Button_hideFlag is SHOWMENU["yes"]: #显示了窗体 + QTimer.singleShot(80, self._jugement) + + def _jugement(self): + ''' + 离开上面窗体之后80ms, 1:进入旁边的菜单框;2:进入弹出的菜单。 + ''' + if self.m_menu.Menu_hideFlag is ENTERMENU["no"]: + self.m_menu.hide() + self.m_menu.close() + self.Button_hideFlag = SHOWMENU["setHide"] + +#================================================== +class BaseMenuWidget(QTableWidget): + #2 + ''' + 下拉菜单。 + ''' + m_currentRow = None + m_currentCol = None + + Menu_hideFlag = ENTERMENU["no"] + + def __init__(self, parent=None): + ''' + Menu_hideFlag: 0时隐藏,1时显示; + ''' + + super(BaseMenuWidget, self).__init__(parent) + + self.__initUI() + + def __initUI(self): + + #无边框,隐藏任务栏; + self.setWindowFlags( Qt.FramelessWindowHint|Qt.Tool|Qt.Widget) + #列宽设置 + self.horizontalHeader().setSectionResizeMode(3) + #充满列宽 + self.horizontalHeader().setStretchLastSection(True) + #行高模式 + self.verticalHeader().setSectionResizeMode(1) + #充满行高 + self.verticalHeader().setStretchLastSection(True) + #只读 + self.setEditTriggers(QAbstractItemView.NoEditTriggers) + + # 隐藏表头 + self.horizontalHeader().setVisible(False); + self.verticalHeader().setVisible(False); + + # 关闭滑动条 + self.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) + self.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) + + self.setColumnCount(1); + self._setHeight() + + # 不知道为啥main.py中的下拉菜单样式要重新赋予一次 + self.parent().readCSS(self) + + def _setHeight(self): + height = self.rowCount()*40 + self.setMinimumHeight(height) + self.setMaximumHeight(height) + + def enterEvent(self, e): + #表明进入了弹窗 + self.Menu_hideFlag = ENTERMENU["yes"] + + def leaveEvent(self, e): + #表名离开了弹窗 + self.Menu_hideFlag = ENTERMENU["no"] + self.hide() + + #取消点击的按钮 + if self.m_currentRow is not None: + self.clearSelection() + self.cellWidget(self.m_currentRow, + self.m_currentCol).setCheckable(False) + + def _addAction(self, text, MyWidget=None, func=None, *args, **kwags): + ''' + obj : QPushButton对象; + text:obj的字; + func:obj点击链接的信号; + MyWidget:想要显示的窗体对象; + ''' + self.insertRow(self.rowCount()) + self._setHeight() + row = self.rowCount()-1 + col = self.columnCount()-1 + + obj = QPushButton(text) + obj.setProperty("M_Action", "isTrue") + obj.setFlat(True) + obj.setCheckable(True); + obj.setAutoExclusive(True); + + #老子真聪明,哈哈 + #按钮默认连接changeTab函数 + if func == None : + func = self.changeTab + obj.clicked.connect(lambda: setattr(self , "m_currentRow" , row)) + obj.clicked.connect(lambda: setattr(self , "m_currentCol" , col)) + + obj.clicked.connect(functools.partial( + func, + text, + MyWidget, + *args, + **kwags) + ) + + self.setCellWidget(row, col , obj); + + def _findParent(self, currentObj): + ''' + 递归找父窗口。 + ''' + + if currentObj.parent().objectName()=="MainWindow": + return currentObj.parent() + + #这里有返回值,返回倒数第二次的 + return self._findParent(currentObj.parent()) + + def changeTab(self, text, MyWidget, *args, **kwags): + #返回的MainWindow + mw = self._findParent(self) + + #save:是否保留窗体;id:在mw.Wid_Obj 二级字典的键值; + if "save" in kwags and "id" in kwags: + save, id = kwags["save"], kwags["id"] + #B1类-b1; B2类-b2; + _key = "b"+ self.__class__.__name__[-1] +# print(_key) + childrens = mw.bottomWidget.children()[1:] + if childrens!=[]: + for obj in childrens: + # 隐藏所有对象 + obj.setVisible(False) + # 如果没有不可删除的属性,就删掉 + if not hasattr(obj, "SAVE"): + sip.delete(obj) + del obj + + #如果为"s", 即对象不删除,保存到字典中; + if save=="s": + if MyWidget is not None: + #第一次点击到时候判断是否存在二级字典中; + if id in mw.Wid_Obj[_key].keys(): + print("存在wid_obj:", mw.Wid_Obj[_key][id]) + print("EXIT?:",mw.Wid_Obj[_key][id].SAVE ) + mw.Wid_Obj[_key][id].setVisible(True) + else: + #不存在则创建; + print("saving..") + obj_Widget = MyWidget() + #动态添加不删除标志 + obj_Widget.SAVE = True + #存对象 + mw.Wid_Obj[_key][id] = obj_Widget + #加到布局 + mw.Bottom_Vbox.addWidget(obj_Widget) + + elif save=="d": + obj_Widget = MyWidget(mw) + mw.Bottom_Vbox.addWidget(obj_Widget) + + print(mw.Wid_Obj) + +#================================================== +class BaseButton(QPushButton): + #1 + ''' + 菜单栏的按钮的样式。 + ''' + def __init__(self, parent=None): + + super(BaseButton, self).__init__(parent) + + self.setMinimumWidth(70) + self.setMaximumWidth(88) + self.setMinimumHeight(self.width()) #保证是个正方形 + + self.setFocusPolicy(Qt.NoFocus) #无焦点,防止背景卡色 + self.setFlat(True) #无凸起阴影 + + self.clicked.connect(self._todo) + + self.png = QLabel(self) + + 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 _todo(self, *args, **kwgs): + ''' + 每个按钮要重新实现的功能函数。 + ''' + pass + + def resizeEvent(self, e): + self.setMinimumHeight(self.width()) + self.png.resize(self.size()) + diff --git a/partner_625781186/5.hoverMenu/U_FuncWidget/Menu.py b/partner_625781186/5.hoverMenu/U_FuncWidget/Menu.py new file mode 100644 index 0000000..4cc8ee5 --- /dev/null +++ b/partner_625781186/5.hoverMenu/U_FuncWidget/Menu.py @@ -0,0 +1,97 @@ +# -*- coding: utf-8 -*- +''' +description: 要增加菜单栏时,在这里添加。
+ +Created on 2018年7月7日 + +Author: 人间白头 + +email: 625781186@qq.com + +BX: 主菜单按钮;
+LX:子菜单按钮 BaseMenuWidget - 是个QTableWidget;
+''' + +from U_FuncWidget.BaseElement import * + +from U_FuncWidget.UThroughTrain4 import GeographicAnalysis_Widget +from U_FuncWidget.UCompetitiveProduct2 import SKU_Widget + +#=========================== 店铺数据 =========================== + +class B1( BaseButton): + def __init__(self, parent=None): + super(B1, self).__init__(parent) + self._createLabel(":/static/store_data.png") + + def _todo(self, *args, **kwgs): + self.msg = QErrorMessage() + self.msg.showMessage("你可以在此添加额外功能。") + +class L1(BaseMenuWidget): + def __init__(self, parent=None): + super(L1, self).__init__(parent) + + self._addAction("病人信息", + GeographicAnalysis_Widget.Form, + id="1", save= "s") + self._addAction("病人", ) + + +#=========================== 竞品分析 =========================== +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(BaseMenuWidget): + def __init__(self, parent=None): + super(L2, self).__init__(parent) + +# 各种传入参数测试 , 也可关联到定义函数 + self._addAction("病人信息", + SKU_Widget.Form, + id="2", save= "s" ) + + self._addAction("检测1") + + self._addAction("检测2", "hello" ) + + self._addAction("标定3", "word", self.cusTomerFunc) + + self._addAction("标定4", "word", + self.cusTomerFunc, + id="4", save= "d" ) + + def cusTomerFunc(self, *a, **kw): + self.changeTab("", + GeographicAnalysis_Widget.Form, + *a, **kw) + print(a, kw) + +#============================= 市场分析 =========================== +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(BaseMenuWidget): + def __init__(self, parent=None): + super(L3, self).__init__(parent) + + +#============================ 直通车工具 =========================== +class B4(BaseButton): + def __init__(self, parent=None): + super(B4, self).__init__(parent) + self._createLabel(":/static/throughTrain.png") + +class L4(BaseMenuWidget): + def __init__(self, parent=None): + super(L4, self).__init__(parent) + diff --git a/partner_625781186/5.hoverMenu/UCompetitiveProduct2/SKU_Widget.py b/partner_625781186/5.hoverMenu/U_FuncWidget/UCompetitiveProduct2/SKU_Widget.py similarity index 88% rename from partner_625781186/5.hoverMenu/UCompetitiveProduct2/SKU_Widget.py rename to partner_625781186/5.hoverMenu/U_FuncWidget/UCompetitiveProduct2/SKU_Widget.py index e902594..ac4c533 100644 --- a/partner_625781186/5.hoverMenu/UCompetitiveProduct2/SKU_Widget.py +++ b/partner_625781186/5.hoverMenu/U_FuncWidget/UCompetitiveProduct2/SKU_Widget.py @@ -12,7 +12,7 @@ from PyQt5.QtWidgets import * from .Ui_SKU_Widget import Ui_Form -class SKU_Form(QWidget, Ui_Form): +class Form(QWidget, Ui_Form): """ Class documentation goes here. """ @@ -23,7 +23,7 @@ class SKU_Form(QWidget, Ui_Form): @param parent reference to the parent widget @type QWidget """ - super(SKU_Form, self).__init__(parent) + super(Form, self).__init__(parent) self.setupUi(self) if __name__ == "__main__": diff --git a/partner_625781186/5.hoverMenu/UCompetitiveProduct2/SKU_Widget.ui b/partner_625781186/5.hoverMenu/U_FuncWidget/UCompetitiveProduct2/SKU_Widget.ui similarity index 100% rename from partner_625781186/5.hoverMenu/UCompetitiveProduct2/SKU_Widget.ui rename to partner_625781186/5.hoverMenu/U_FuncWidget/UCompetitiveProduct2/SKU_Widget.ui diff --git a/partner_625781186/5.hoverMenu/UCompetitiveProduct2/Ui_SKU_Widget.py b/partner_625781186/5.hoverMenu/U_FuncWidget/UCompetitiveProduct2/Ui_SKU_Widget.py similarity index 94% rename from partner_625781186/5.hoverMenu/UCompetitiveProduct2/Ui_SKU_Widget.py rename to partner_625781186/5.hoverMenu/U_FuncWidget/UCompetitiveProduct2/Ui_SKU_Widget.py index 14abfed..60c0fb0 100644 --- a/partner_625781186/5.hoverMenu/UCompetitiveProduct2/Ui_SKU_Widget.py +++ b/partner_625781186/5.hoverMenu/U_FuncWidget/UCompetitiveProduct2/Ui_SKU_Widget.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- -# Form implementation generated from reading ui file 'D:\pyPro\hoverMenu\UCompetitiveProduct2\SKU_Widget.ui' +# Form implementation generated from reading ui file 'D:\QGroup_432987409\WoHowLearn\0.M_I_pyqt\partner_625781186\5.hoverMenu\U_FuncWidget\UCompetitiveProduct2\SKU_Widget.ui' # -# Created by: PyQt5 UI code generator 5.9 +# Created by: PyQt5 UI code generator 5.10.1 # # WARNING! All changes made in this file will be lost! diff --git a/partner_625781186/5.hoverMenu/U_FuncWidget/UCompetitiveProduct2/__init__.py b/partner_625781186/5.hoverMenu/U_FuncWidget/UCompetitiveProduct2/__init__.py new file mode 100644 index 0000000..880a3f5 --- /dev/null +++ b/partner_625781186/5.hoverMenu/U_FuncWidget/UCompetitiveProduct2/__init__.py @@ -0,0 +1 @@ +"""自定义界面.""" \ No newline at end of file diff --git a/partner_625781186/5.hoverMenu/U_FuncWidget/UMarketAnalysis3/__init__.py b/partner_625781186/5.hoverMenu/U_FuncWidget/UMarketAnalysis3/__init__.py new file mode 100644 index 0000000..880a3f5 --- /dev/null +++ b/partner_625781186/5.hoverMenu/U_FuncWidget/UMarketAnalysis3/__init__.py @@ -0,0 +1 @@ +"""自定义界面.""" \ No newline at end of file diff --git a/partner_625781186/5.hoverMenu/U_FuncWidget/UStoreData1/__init__.py b/partner_625781186/5.hoverMenu/U_FuncWidget/UStoreData1/__init__.py new file mode 100644 index 0000000..880a3f5 --- /dev/null +++ b/partner_625781186/5.hoverMenu/U_FuncWidget/UStoreData1/__init__.py @@ -0,0 +1 @@ +"""自定义界面.""" \ No newline at end of file diff --git a/partner_625781186/5.hoverMenu/UThroughTrain4/GeographicAnalysis_Widget.py b/partner_625781186/5.hoverMenu/U_FuncWidget/UThroughTrain4/GeographicAnalysis_Widget.py similarity index 90% rename from partner_625781186/5.hoverMenu/UThroughTrain4/GeographicAnalysis_Widget.py rename to partner_625781186/5.hoverMenu/U_FuncWidget/UThroughTrain4/GeographicAnalysis_Widget.py index 5feae63..9baaaff 100644 --- a/partner_625781186/5.hoverMenu/UThroughTrain4/GeographicAnalysis_Widget.py +++ b/partner_625781186/5.hoverMenu/U_FuncWidget/UThroughTrain4/GeographicAnalysis_Widget.py @@ -12,7 +12,7 @@ from PyQt5.QtWidgets import * from .Ui_GeographicAnalysis_Widget import Ui_Form -class GeographicAnalysis_Form(QWidget, Ui_Form): +class Form(QWidget, Ui_Form): """ Class documentation goes here. """ @@ -23,7 +23,7 @@ class GeographicAnalysis_Form(QWidget, Ui_Form): @param parent reference to the parent widget @type QWidget """ - super(GeographicAnalysis_Form, self).__init__(parent) + super(Form, self).__init__(parent) self.setupUi(self) self.geographicAnalysis_table.horizontalHeader().setSectionResizeMode(1)#列宽设置 diff --git a/partner_625781186/5.hoverMenu/UThroughTrain4/GeographicAnalysis_Widget.ui b/partner_625781186/5.hoverMenu/U_FuncWidget/UThroughTrain4/GeographicAnalysis_Widget.ui similarity index 100% rename from partner_625781186/5.hoverMenu/UThroughTrain4/GeographicAnalysis_Widget.ui rename to partner_625781186/5.hoverMenu/U_FuncWidget/UThroughTrain4/GeographicAnalysis_Widget.ui diff --git a/partner_625781186/5.hoverMenu/UThroughTrain4/Ui_GeographicAnalysis_Widget.py b/partner_625781186/5.hoverMenu/U_FuncWidget/UThroughTrain4/Ui_GeographicAnalysis_Widget.py similarity index 100% rename from partner_625781186/5.hoverMenu/UThroughTrain4/Ui_GeographicAnalysis_Widget.py rename to partner_625781186/5.hoverMenu/U_FuncWidget/UThroughTrain4/Ui_GeographicAnalysis_Widget.py diff --git a/partner_625781186/5.hoverMenu/U_FuncWidget/UThroughTrain4/__init__.py b/partner_625781186/5.hoverMenu/U_FuncWidget/UThroughTrain4/__init__.py new file mode 100644 index 0000000..880a3f5 --- /dev/null +++ b/partner_625781186/5.hoverMenu/U_FuncWidget/UThroughTrain4/__init__.py @@ -0,0 +1 @@ +"""自定义界面.""" \ No newline at end of file diff --git a/partner_625781186/5.hoverMenu/U_FuncWidget/__init__.py b/partner_625781186/5.hoverMenu/U_FuncWidget/__init__.py new file mode 100644 index 0000000..d9b5ddf --- /dev/null +++ b/partner_625781186/5.hoverMenu/U_FuncWidget/__init__.py @@ -0,0 +1,3 @@ +""" +添加功能及自定义界面. +""" \ No newline at end of file diff --git a/partner_625781186/5.hoverMenu/Ui_Main.py b/partner_625781186/5.hoverMenu/Ui_Main.py index 9d993c3..6fc8238 100644 --- a/partner_625781186/5.hoverMenu/Ui_Main.py +++ b/partner_625781186/5.hoverMenu/Ui_Main.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'D:\QGroup_432987409\WoHowLearn\0.M_I_pyqt\partner_625781186\5.hoverMenu\Main.ui' # -# Created by: PyQt5 UI code generator 5.9 +# Created by: PyQt5 UI code generator 5.10.1 # # WARNING! All changes made in this file will be lost! @@ -11,15 +11,26 @@ 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;}") + MainWindow.resize(908, 518) + MainWindow.setStyleSheet("* #MainWindow { border:none;}\n" +" #widget{ border:none; }\n" +"/*#topWidget QWidget{ background-color: green; }\n" +"#widget QLabel{ background-color: rgb(85, 0, 255); }*/\n" +"") 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.setContentsMargins(0, 2, 0, 0) + self.verticalLayout.setSpacing(0) self.verticalLayout.setObjectName("verticalLayout") + self.toggleButton = QtWidgets.QPushButton(self.centralWidget) + self.toggleButton.setStyleSheet("background-color:#1d4371;\n" +"\n" +"border-radius:0px;") + self.toggleButton.setFlat(True) + self.toggleButton.setObjectName("toggleButton") + self.verticalLayout.addWidget(self.toggleButton) self.widget = QtWidgets.QWidget(self.centralWidget) self.widget.setStyleSheet("#widget {border:none;}") self.widget.setObjectName("widget") @@ -28,92 +39,14 @@ class Ui_MainWindow(object): 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.setStyleSheet("") 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 = QtWidgets.QGridLayout(self.topWidget) + self.gridLayout_2.setContentsMargins(0, 0, 0, 0) 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.setContentsMargins(-1, -1, 6, -1) self.verticalLayout_19.setSpacing(2) self.verticalLayout_19.setObjectName("verticalLayout_19") self.label_17 = QtWidgets.QLabel(self.topWidget) @@ -124,26 +57,138 @@ class Ui_MainWindow(object): 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.gridLayout_2.addLayout(self.verticalLayout_19, 1, 4, 1, 1) + self.W2 = SingeleWidget(self.topWidget) + self.W2.setObjectName("W2") + self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.W2) + self.verticalLayout_5.setContentsMargins(9, 9, 9, 9) + self.verticalLayout_5.setSpacing(2) + self.verticalLayout_5.setObjectName("verticalLayout_5") + self.horizontalLayout_5 = QtWidgets.QHBoxLayout() + self.horizontalLayout_5.setSpacing(2) + self.horizontalLayout_5.setObjectName("horizontalLayout_5") + self.filemenu_storeData_6 = B2(self.W2) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.filemenu_storeData_6.sizePolicy().hasHeightForWidth()) + self.filemenu_storeData_6.setSizePolicy(sizePolicy) + self.filemenu_storeData_6.setText("") + self.filemenu_storeData_6.setObjectName("filemenu_storeData_6") + self.horizontalLayout_5.addWidget(self.filemenu_storeData_6) + self.verticalLayout_5.addLayout(self.horizontalLayout_5) + self.label_22 = QtWidgets.QLabel(self.W2) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_22.sizePolicy().hasHeightForWidth()) + self.label_22.setSizePolicy(sizePolicy) + self.label_22.setAlignment(QtCore.Qt.AlignCenter) + self.label_22.setObjectName("label_22") + self.verticalLayout_5.addWidget(self.label_22) + self.gridLayout_2.addWidget(self.W2, 1, 1, 1, 1) + self.W4 = SingeleWidget(self.topWidget) + self.W4.setObjectName("W4") + self.verticalLayout_7 = QtWidgets.QVBoxLayout(self.W4) + self.verticalLayout_7.setContentsMargins(9, 9, 9, 9) + self.verticalLayout_7.setSpacing(2) + self.verticalLayout_7.setObjectName("verticalLayout_7") + self.horizontalLayout_7 = QtWidgets.QHBoxLayout() + self.horizontalLayout_7.setSpacing(2) + self.horizontalLayout_7.setObjectName("horizontalLayout_7") + self.filemenu_storeData_8 = B4(self.W4) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.filemenu_storeData_8.sizePolicy().hasHeightForWidth()) + self.filemenu_storeData_8.setSizePolicy(sizePolicy) + self.filemenu_storeData_8.setText("") + self.filemenu_storeData_8.setObjectName("filemenu_storeData_8") + self.horizontalLayout_7.addWidget(self.filemenu_storeData_8) + self.verticalLayout_7.addLayout(self.horizontalLayout_7) + self.label_24 = QtWidgets.QLabel(self.W4) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_24.sizePolicy().hasHeightForWidth()) + self.label_24.setSizePolicy(sizePolicy) + self.label_24.setAlignment(QtCore.Qt.AlignCenter) + self.label_24.setObjectName("label_24") + self.verticalLayout_7.addWidget(self.label_24) + self.gridLayout_2.addWidget(self.W4, 1, 3, 1, 1) + self.W1 = SingeleWidget(self.topWidget) + self.W1.setObjectName("W1") + self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.W1) + self.verticalLayout_2.setContentsMargins(9, 9, 9, 9) + self.verticalLayout_2.setSpacing(2) + self.verticalLayout_2.setObjectName("verticalLayout_2") + self.horizontalLayout_2 = QtWidgets.QHBoxLayout() + self.horizontalLayout_2.setSpacing(2) + self.horizontalLayout_2.setObjectName("horizontalLayout_2") + self.filemenu_storeData_3 = B1(self.W1) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.filemenu_storeData_3.sizePolicy().hasHeightForWidth()) + self.filemenu_storeData_3.setSizePolicy(sizePolicy) + self.filemenu_storeData_3.setText("") + self.filemenu_storeData_3.setObjectName("filemenu_storeData_3") + self.horizontalLayout_2.addWidget(self.filemenu_storeData_3) + self.verticalLayout_2.addLayout(self.horizontalLayout_2) + self.label_15 = QtWidgets.QLabel(self.W1) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_15.sizePolicy().hasHeightForWidth()) + self.label_15.setSizePolicy(sizePolicy) + self.label_15.setAlignment(QtCore.Qt.AlignCenter) + self.label_15.setObjectName("label_15") + self.verticalLayout_2.addWidget(self.label_15) + self.gridLayout_2.addWidget(self.W1, 1, 0, 1, 1) + self.W3 = SingeleWidget(self.topWidget) + self.W3.setObjectName("W3") + self.gridLayout = QtWidgets.QGridLayout(self.W3) + self.gridLayout.setSizeConstraint(QtWidgets.QLayout.SetMinAndMaxSize) + self.gridLayout.setContentsMargins(9, 9, 9, 9) + self.gridLayout.setSpacing(2) + self.gridLayout.setObjectName("gridLayout") + self.label_23 = QtWidgets.QLabel(self.W3) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_23.sizePolicy().hasHeightForWidth()) + self.label_23.setSizePolicy(sizePolicy) + self.label_23.setAlignment(QtCore.Qt.AlignCenter) + self.label_23.setWordWrap(False) + self.label_23.setObjectName("label_23") + self.gridLayout.addWidget(self.label_23, 1, 0, 1, 1) + self.horizontalLayout_6 = QtWidgets.QHBoxLayout() + self.horizontalLayout_6.setSpacing(2) + self.horizontalLayout_6.setObjectName("horizontalLayout_6") + self.filemenu_storeData_7 = B3(self.W3) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.filemenu_storeData_7.sizePolicy().hasHeightForWidth()) + self.filemenu_storeData_7.setSizePolicy(sizePolicy) + self.filemenu_storeData_7.setText("") + self.filemenu_storeData_7.setObjectName("filemenu_storeData_7") + self.horizontalLayout_6.addWidget(self.filemenu_storeData_7) + self.gridLayout.addLayout(self.horizontalLayout_6, 0, 0, 1, 1) + self.gridLayout_2.addWidget(self.W3, 1, 2, 1, 1) self.verticalLayout_14.addWidget(self.topWidget) - self.buttomWidget = QtWidgets.QWidget(self.widget) + self.bottomWidget = 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) + sizePolicy.setHeightForWidth(self.bottomWidget.sizePolicy().hasHeightForWidth()) + self.bottomWidget.setSizePolicy(sizePolicy) + self.bottomWidget.setObjectName("bottomWidget") + self.Bottom_Vbox = QtWidgets.QVBoxLayout(self.bottomWidget) + self.Bottom_Vbox.setContentsMargins(0, 0, 0, 0) + self.Bottom_Vbox.setSpacing(0) + self.Bottom_Vbox.setObjectName("Bottom_Vbox") + self.verticalLayout_14.addWidget(self.bottomWidget) self.verticalLayout.addWidget(self.widget) MainWindow.setCentralWidget(self.centralWidget) self.action1 = QtWidgets.QAction(MainWindow) @@ -157,18 +202,22 @@ class Ui_MainWindow(object): 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.toggleButton.setText(_translate("MainWindow", "↑")) self.label_17.setText(_translate("MainWindow", "个人中心")) self.label_18.setText(_translate("MainWindow", "退出登录")) + self.label_22.setText(_translate("MainWindow", "店铺数据")) + self.label_24.setText(_translate("MainWindow", "店铺")) + self.label_15.setText(_translate("MainWindow", "店铺数据")) + self.label_23.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 +from U_FuncWidget.BaseElement import SingeleWidget +from U_FuncWidget.Menu import B1, B2, B3, B4 +try: + import tbqrc_rc +except: + from . import tbqrc_rc if __name__ == "__main__": import sys diff --git a/partner_625781186/5.hoverMenu/hoverMenu.e4p b/partner_625781186/5.hoverMenu/hoverMenu.e4p index c5e568e..2527e5d 100644 --- a/partner_625781186/5.hoverMenu/hoverMenu.e4p +++ b/partner_625781186/5.hoverMenu/hoverMenu.e4p @@ -1,9 +1,9 @@ - + - + - + 873d0c0fade67dd54262d1b6954d5edfac966911 Python3 @@ -13,40 +13,34 @@ - BaseElement.py - CommonHelper.py Main.py - Menu.py - UCompetitiveProduct2/SKU_Widget.py - UCompetitiveProduct2/Ui_L2.py - UCompetitiveProduct2/Ui_SKU_Widget.py - UMarketAnalysis3/Ui_L3.py - UStoreData1/Ui_L1.py - UThroughTrain4/GeographicAnalysis_Widget.py - UThroughTrain4/Ui_GeographicAnalysis_Widget.py - UThroughTrain4/Ui_L4.py + Tools/CommonHelper.py + Tools/__init__.py + Tools/qmf_showError.py + Tools/style.css + U_FuncWidget/BaseElement.py + U_FuncWidget/Menu.py + U_FuncWidget/UCompetitiveProduct2/SKU_Widget.py + U_FuncWidget/UCompetitiveProduct2/Ui_SKU_Widget.py + U_FuncWidget/UCompetitiveProduct2/__init__.py + U_FuncWidget/UStoreData1/Ui_L1.py + U_FuncWidget/UThroughTrain4/GeographicAnalysis_Widget.py + U_FuncWidget/UThroughTrain4/Ui_GeographicAnalysis_Widget.py + U_FuncWidget/UThroughTrain4/__init__.py Ui_Main.py - __init__.py tbqrc_rc.py
Main.ui
-
UCompetitiveProduct2/L2.ui
-
UCompetitiveProduct2/SKU_Widget.ui
-
UMarketAnalysis3/L3.ui
-
UStoreData1/L1.ui
-
UThroughTrain4/GeographicAnalysis_Widget.ui
-
UThroughTrain4/GeographicAnalysis_Widget.ui
-
UThroughTrain4/L4.ui
+
U_FuncWidget/UCompetitiveProduct2/SKU_Widget.ui
+
U_FuncWidget/UStoreData1/L1.ui
+
U_FuncWidget/UThroughTrain4/GeographicAnalysis_Widget.ui
- tbqrc.qrc - Documentation - /Documentation None @@ -87,8 +81,8 @@ - tbqrc_rc.py - Ui_Main.py + Ui_*.py + *_rc.py @@ -103,6 +97,12 @@ False + + useRecursion + + + True + diff --git a/partner_625781186/5.hoverMenu/readme.md b/partner_625781186/5.hoverMenu/readme.md index d741461..0a6d2c6 100644 --- a/partner_625781186/5.hoverMenu/readme.md +++ b/partner_625781186/5.hoverMenu/readme.md @@ -1,22 +1,26 @@ +## 更新 2018年9月9日 +- 在程序中定义 离开当前页面可以选择是删除数据还是保留 ; +- 收缩动画 ; + # 进入式下拉菜单 ![效果图](ScreenShot/2.gif) -[文档](Documentation/index-5.hoverMenu.md) +## [程序文档 , emmm可能没什么用](Documentation/README-5.hoverMenu.md) ### 添加额外菜单 -- 1. 将W1整个窗体(连通子部件,按住Ctrl+鼠标左键复制),且对象名更改为W1-W9; + +- 1.将W1整个窗体(连通子部件,按住Ctrl+鼠标左键复制); +- 2.修改对象名更改为WX , 并将按钮的提升类设定为BX; +### ↑这两点至关重要↑ ![提升类.png](https://upload-images.jianshu.io/upload_images/10769157-aded44441a666282.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) -- 2.从复制旧的文件夹,并更改LX.ui中的每条; - -![image.png](https://upload-images.jianshu.io/upload_images/10769157-e9d969a4ad55f05d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) - 3.在Menu.py中为你的菜单添加图标及事件; + - BaseElement.py 对菜单栏的框/按钮/下拉菜单 定义; + - Menu.py 对菜单栏按钮添加功能/对下拉菜单添加条目及功能; -![image.png](https://upload-images.jianshu.io/upload_images/10769157-9819676a7ed8329e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) +![image.png](https://upload-images.jianshu.io/upload_images/10769157-44f6e8eee864054e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ## 下一步要做的 -我不知道你能不能看懂我的文档,反正只是做一个思路,我自己也觉得太难用了,啥时候用空封装一下(估计一直懒一下); - -也有可能寻找一种简单的解决办法。 \ No newline at end of file +没想好; \ No newline at end of file