You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
2.1 KiB
Python
60 lines
2.1 KiB
Python
from PyQt5.QtCore import QSize, Qt, pyqtSignal
|
|
from PyQt5.QtGui import QIcon
|
|
from PyQt5.QtWidgets import QHBoxLayout
|
|
from PyQt5.QtWidgets import QListWidget, QStackedWidget
|
|
from PyQt5.QtWidgets import QListWidgetItem
|
|
from PyQt5.QtWidgets import QWidget
|
|
|
|
|
|
class AccountManagement(QWidget):
|
|
'''左侧选项栏'''
|
|
|
|
def __init__(self, lis_name, lis_win, lis_img, str):
|
|
super(AccountManagement, self).__init__()
|
|
self.resize(900, 600)
|
|
self.setObjectName(str)
|
|
self.lis_name = lis_name
|
|
self.lis_win = lis_win
|
|
self.lis_img = lis_img
|
|
|
|
self.setFixedSize(self.width(), self.height())
|
|
|
|
self.setWindowTitle(str)
|
|
|
|
self.main_layout = QHBoxLayout(self, spacing=0) # 窗口的整体布局
|
|
self.main_layout.setContentsMargins(0, 0, 0, 0)
|
|
|
|
self.left_widget = QListWidget() # 左侧选项列表
|
|
self.main_layout.addWidget(self.left_widget)
|
|
|
|
self.right_widget = QStackedWidget()
|
|
self.main_layout.addWidget(self.right_widget)
|
|
self.right_widget.currentChanged.connect(self.changeData)
|
|
|
|
self._setup_ui()
|
|
|
|
def _setup_ui(self):
|
|
'''加载界面ui'''
|
|
|
|
self.left_widget.currentRowChanged.connect(self.right_widget.setCurrentIndex) # list和右侧窗口的index对应绑定
|
|
|
|
self.left_widget.setFrameShape(QListWidget.NoFrame) # 去掉边框
|
|
|
|
self.left_widget.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff) # 隐藏滚动条
|
|
self.left_widget.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
|
|
|
|
for i in range(len(self.lis_name)):
|
|
self.item = QListWidgetItem(
|
|
QIcon(self.lis_img[i]),
|
|
self.lis_name[i],
|
|
self.left_widget
|
|
) # 左侧选项的添加
|
|
self.item.setSizeHint(QSize(30, 60))
|
|
self.item.setTextAlignment(Qt.AlignCenter) # 居中显示
|
|
self.right_widget.addWidget(self.lis_win[i])
|
|
|
|
def changeData(self):
|
|
win = self.right_widget.currentWidget()
|
|
win.queryModel.datas = win.getTableValue()
|
|
win.queryModel.layoutChanged.emit()
|