QStackedWidget 与 QStackedLayout 的用法区别
2024-08-22 17:28:00
import sys
from PyQt5 import QtWidgets, QtCore class MyWidget(QtWidgets.QWidget):
def __init__(self, i=0):
super().__init__()
self.setWindowTitle('窗口 ' + str(i))
label = QtWidgets.QLabel('标签 ' + str(i))
layout = QtWidgets.QHBoxLayout(self)
layout.addWidget(label) class TestWidget(QtWidgets.QWidget):
def __init__(self, parent=None):
super().__init__(parent) layout = QtWidgets.QHBoxLayout(self) #stack = QtWidgets.QStackedWidget() # ① Widget
stack = QtWidgets.QStackedLayout() # ② Layout list = QtWidgets.QListWidget(self)
list.setDragEnabled(True)
list.setDragDropMode(QtWidgets.QAbstractItemView.InternalMove) layout.addWidget(list)
#layout.addWidget(stack) # ① 对应 addWidget
layout.addLayout(stack) # ② 对应 addLayout for i in range(10):
stack.addWidget(MyWidget(i))
list.addItem("窗口 %04i" % i) list.currentRowChanged.connect(stack.setCurrentIndex) if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
widget = TestWidget()
#widget = MyWidget()
widget.show()
sys.exit(app.exec_())
# ... ... self.contentsWidget.currentItemChanged.connect(self.changePage)
#self.contentsWidget.currentRowChanged.connect(self.pagesWidget.setCurrentIndex) def changePage(self, current, previous):
if not current:
current = previous
self.pagesWidget.setCurrentIndex(self.contentsWidget.row(current))
最新文章
- NoSQL学习——MongoDB
- hdu 4741 2013杭州赛区网络赛 dfs ***
- Fragment回调顺序及getActivity()为NullPointerException解决方法
- NSRunLoop个人理解
- uva--11991 - Easy Problem from Rujia Liu?(sort+二分 map+vector vector)
- 有关于web server架构的一个小疑问
- python获取绑定的IP,并动态指定出口IP
- Android消息推送 SDK 集成指南
- 【Vue】Vue初探
- 【Java基础】【21IO(字符流)&;字符流其他内容&;递归】
- 版本控制,django缓存,跨域问题解决
- pip/pip3更换国内源
- PAT A1128 N Queens Puzzle (20 分)——数学题
- [knowledge][http] http
- day 26 元类
- vue实现短信验证码登录
- 每天一个linux命令-wc命令
- POI3.10读取Excel模板填充数据后生成新的Excel文件
- 使用tinyproxy搭建http代理
- poj 2481 Cows(树状数组)题解