我 的 个 人 主 页: 失心疯的个人主页
入 门 教 程 推 荐 : Python零基础入门教程合集
虚 拟 环 境 搭 建 : Python项目虚拟环境(超详细讲解)
PyQt5 系 列 教 程: Python GUI(PyQt5)文章合集
Oracle数据库教程: Oracle数据库文章合集
优 质 资 源 下 载 : 资源下载合集
QStackedWidget(parent) # 创建QStackedWidget对象的同时设置父对象
addWidget(QWidget) -> int # 添加控件到QStackedWidget对象列表的最后,并返回索引号
insertWidget(index, QWidget) -> int # 在指定索引位置插入控件,并返回索引号
indexOf(QWidget) -> int # 获取指定控件的索引号
widget(int) -> QWidget # 根据索引号获取控件
currentIndex() -> int # 获取当前显示控件的索引
currentWidget() -> QWidget # 获取当前显示的控件
setCurrentIndex(index) # 设置指定索引号控件为当前显示控件
setCurrentWidget(QWidget) # 设置指定控件为当前显示控件
count() # 获取QStackedWidget对象中堆叠控件的总个数
removeWidget(QWidget) # 移除指定控件
# removeWidget(widget(int)) # 嵌套使用,移除指定索引控件
widgetRemoved(index) # 移除控件时发射该信号,传递被移除控件的索引
currentChanged(index) # 当前显示控件发生改变时发射该信号,传递新显示控件的索引
from PyQt5.Qt import *
import sys
class Windows(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('QStackedWidget-功能演示')
self.resize(500, 300)
self.widget_list()
def widget_list(self):
stw = QStackedWidget()
self.stw = stw
w1 = QWidget()
w2 = QWidget()
w3 = QWidget()
w4 = QWidget()
QLabel('主页', w1).move(100, 100)
QLabel('简介', w2).move(100, 100)
QLabel('联系', w3).move(100, 100)
QLabel('地址', w4).move(100, 100)
w1.setStyleSheet('background-color: red;')
w2.setStyleSheet('background-color: yellow;')
w3.setStyleSheet('background-color: cyan;')
w4.setStyleSheet('background-color: green;')
stw.addWidget(w1)
stw.addWidget(w2)
stw.addWidget(w3)
stw.addWidget(w4)
cmb = QComboBox()
items = ['主页', '简介', '联系', '地址']
cmb.addItems(items)
hlayout = QHBoxLayout()
hlayout.addWidget(cmb, 1)
hlayout.addWidget(stw, 4)
self.setLayout(hlayout)
cmb.currentIndexChanged[int].connect(self.open_window)
stw.currentChanged.connect(lambda index: print(f'当前显示控件发生了改变,新控件索引{index}'))
def open_window(self, index):
self.stw.setCurrentIndex(index)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = Windows()
window.show()
sys.exit(app.exec_())