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

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()