堆栈窗口

代码:

 1 #coding: utf-8
 2 from PyQt4.QtCore import *
 3 from PyQt4.QtGui import *
 4 import sys
 5 
 6 QTextCodec.setCodecForTr(QTextCodec.codecForName("utf8"))
 7 
 8 class StockDialog(QDialog):
 9     def __init__(self, parent=None):
10         super(StockDialog, self).__init__(parent)
11         self.setWindowTitle(self.tr("堆栈窗口"))
12 
13         listWidget = QListWidget()
14         listWidget.insertItem(0, self.tr("窗口1"))
15         listWidget.insertItem(1, self.tr("窗口2"))
16         listWidget.insertItem(2, self.tr("窗口3"))
17         label1 = QLabel(self.tr("这是窗口1!"))
18         label2 = QLabel(self.tr("这是窗口2!"))
19         label3 = QLabel(self.tr("这是窗口3!"))
20         #创建一个 QStackedWidget 堆栈窗
21         stack = QStackedWidget()
22         #调用 addWidget()方法把前面创建的 3 个标签控件依次插入堆栈窗中
23         stack.addWidget(label1)
24         stack.addWidget(label2)
25         stack.addWidget(label3)
26         #使用 QHBoxLayout 对整个对话框进行布局
27         mainLayout = QHBoxLayout(self)
28         mainLayout.setMargin(5)
29         mainLayout.setSpacing(5)
30         mainLayout.addWidget(listWidget)
31         mainLayout.addWidget(stack, 0, Qt.AlignHCenter)
32         mainLayout.setStretchFactor(listWidget, 1)
33         mainLayout.setStretchFactor(stack, 3)
34         self.connect(listWidget, SIGNAL("currentRowChanged(int)"), stack, SLOT("setCurrentIndex(int)"))
35         #连接  QListWidget 的 currentRowChanged()信号与堆栈窗的 setCurrentIndex()槽,
36         #现按选择显示窗体。 此处的堆栈窗体 index 按插入的顺序从 0 起依次排序, 与 QListWidget
37         #的条目排序相一致
38 app = QApplication(sys.argv)
39 main = StockDialog()
40 main.show()
41 app.exec_()

 

posted @ 2015-05-30 15:16  Chris*Chen  阅读(518)  评论(0编辑  收藏  举报