PyQt4中的Stacked Widget应用
来源:互联网 发布:农村淘宝服务站怎么绑 编辑:程序博客网 时间:2024/04/29 06:32
参考资料
PyQt4 tutorial :http://www.qaulau.com/books/PyQt4_Tutorial/index.html
PyQt4 Modules: http://pyqt.sourceforge.net/Docs/PyQt4/modules.html
例程:http://www.linuxidc.com/Linux/2012-06/63652p20.htm
主要功能
左边的list发生变化时,右边的Stacked Widget表现出不同的形式
代码
import sysfrom PyQt4.QtGui import *from PyQt4.QtCore import *QTextCodec.setCodecForTr(QTextCodec.codecForName("utf8"))class Example(QDialog): def __init__(self, parent=None): super(Example, self).__init__(parent) self.setWindowTitle("example") listWidget = QListWidget(self) listWidget.insertItem(0, "Button") listWidget.insertItem(1, "Label") listWidget.insertItem(2, "txt") stack = QStackedWidget() button = Button() label = Label() txt = Txt() stack.addWidget(button) stack.addWidget(label) stack.addWidget(txt) mainLayout = QHBoxLayout(self) mainLayout.setMargin(5) # 对话框边距设为5 Margin 边距 5px mainLayout.setSpacing(5) # 内部控件间距为5 Spacing间距 5px mainLayout.addWidget(listWidget) mainLayout.addWidget(stack, 0, Qt.AlignHCenter) mainLayout.setStretchFactor(listWidget, 1) mainLayout.setStretchFactor(stack, 3) # 设定了list与stack比例为1:3。 self.connect(listWidget, SIGNAL('currentRowChanged(int)'), stack, SLOT('setCurrentIndex(int)'))class Button(QWidget): def __init__(self, parent=None): super(Button, self).__init__(parent) button1 = QPushButton("button 1") button2 = QPushButton("button 2") button3 = QPushButton("button 3") button4 = QPushButton("button 4") button5 = QPushButton("button 5") button6 = QPushButton("button 6") button7 = QPushButton("button 7") button8 = QPushButton("button 8") button9 = QPushButton("button 9") layout = QGridLayout(self) layout.addWidget(button1, 0, 0) layout.addWidget(button2, 0, 1) layout.addWidget(button3, 0, 2) layout.addWidget(button4, 1, 0) layout.addWidget(button5, 1, 1) layout.addWidget(button6, 1, 2) layout.addWidget(button7, 2, 0) layout.addWidget(button8, 2, 1) layout.addWidget(button9, 2, 2)class Label(QWidget): def __init__(self, parent=None): super(Label, self).__init__(parent) label1 = QLabel("label 1") label2 = QLabel("label 2") label3 = QLabel("label 3") label4 = QLabel("label 4") label5 = QLabel("label 5") label6 = QLabel("label 6") label7 = QLabel("label 7") label8 = QLabel("label 8") label9 = QLabel("label 9") layout = QGridLayout(self) layout.addWidget(label1, 0, 0) layout.addWidget(label2, 0, 1) layout.addWidget(label3, 0, 2) layout.addWidget(label4, 1, 0) layout.addWidget(label5, 1, 1) layout.addWidget(label6, 1, 2) layout.addWidget(label7, 2, 0) layout.addWidget(label8, 2, 1) layout.addWidget(label9, 2, 2)class Txt(QWidget): def __init__(self, parent=None): super(Txt, self).__init__(parent) label1 = QLabel("txt 1") label2 = QLabel("txt 2") label3 = QLabel("txt 3") txt1 = QLineEdit() txt2 = QLineEdit() txt3 = QLineEdit() layout = QGridLayout(self) layout.addWidget(label1, 0, 0) layout.addWidget(txt1, 0, 1) layout.addWidget(label2, 1, 0) layout.addWidget(txt2, 1, 1) layout.addWidget(label3, 2, 0) layout.addWidget(txt3, 2, 1)app = QApplication(sys.argv)ex = Example()ex.show()sys.exit(app.exec_())
0 0
- PyQt4中的Stacked Widget应用
- PyQt4-Widget
- PyQt4 Widget
- pyqt4的一些widget
- 浅谈控件提升之stacked Widget
- Qt 多页面切换stacked widget控件
- PyQt4 中的俄罗斯方块
- Python PyQt4创建窗口应用
- PyQt4中的中文显示问题
- PyQt4教程 – 03 PyQt4中的菜单和工具栏
- Pyqt4
- pyqt4
- AccordionContainer widget的应用
- Android之Widget应用
- Android-Widget应用详解
- Widget应用学习笔记
- App Widget Provider 应用
- android 应用开发 ---- widget
- PHP把一段时间处理成分时间段数组(带有名称及截止时间)
- TP3.2.3 求出每年每月详细数据
- 【排序算法】-归并排序
- android studio异常
- 数据结构与算法概述
- PyQt4中的Stacked Widget应用
- android系统的四种文件操作模式
- 数组排序问题
- 如何每天靠iPhone赚零钱
- 【bzoj2500】幸福的道路 单调队列+树形dp
- webdriver中frame定位
- leetcode——Single Number III
- Bootloader - Main system - Recovery的三角关系
- Java中的关键字