转载地址: http://blog.csdn.net/a649518776/article/details/6636578

下面用代码实现上面窗口的设计

 # -*- coding: utf-8 -*-
from PyQt4.QtGui import *
from PyQt4.QtCore import *
import sys QTextCodec.setCodecForTr(QTextCodec.codecForName("utf8"))
class Stacked(QDialog):
def __init__(self, parent=None):
super(Stacked, self).__init__(parent)
self.setWindowTitle(self.tr("StackedWidget")) leftlist = QListWidget(self)
leftlist.insertItem(0, 'window1')
leftlist.insertItem(1, 'window2')
leftlist.insertItem(2, 'window3') label1 = QLabel('windowTest1\n11111111 ')
label2 = QLabel('windowTest2\n22222222 ')
label3 = QLabel('windowTest3\n33333333 ') stack = QStackedWidget(self)
stack.addWidget(label1)
stack.addWidget(label2)
stack.addWidget(label3) mainLayout = QHBoxLayout(self)
mainLayout.setMargin(5) # 对话框边距设为5 Margin 边距 5px
mainLayout.setSpacing(5) # 内部控件间距为5 Spacing间距 5px
mainLayout.addWidget(leftlist)
mainLayout.addWidget(stack, 0, Qt.AlignHCenter)
mainLayout.setStretchFactor(leftlist, 1)
mainLayout.setStretchFactor(stack, 3) # 设定了list与stack比例为1:3。
self.connect(leftlist, SIGNAL('currentRowChanged(int)'), stack, SLOT('setCurrentIndex(int)')) if __name__ == '__main__':
app = QApplication(sys.argv)
main = Stacked()
main.show()
app.exec_()

效果:

解析:

1.这里的程序是,选中左边列表框内的内容,显示相应的窗体。

2.所以,第一步是初始化列表框QListWidget。

3.第二步新建堆栈窗体:

stack = QStackedWidget(self)

然后将三个相应的label放入其中:

        stack.addWidget(label1)
stack.addWidget(label2)
stack.addWidget(label3)

4.设置主窗体布局时,用到了布局管理器。这里用到的是水平排列窗体QHBoxLayout:

mainLayout = QHBoxLayout(self)

这个布局管理器用法为:

mainLayout.setMargin(5)  # 对话框边距设为5 Margin 边距  5px
mainLayout.setSpacing(5) # 内部控件间距为5 Spacing间距 5px

setStetchFactor函数

mainLayout.setStretchFactor(leftlist, 1)
mainLayout.setStretchFactor(stack, 3) # 设定了list与stack比例为1:3。

5.设定消息相应的信号与槽:

self.connect(leftlist, SIGNAL('currentRowChanged(int)'), stack, SLOT('setCurrentIndex(int)'))

【转载】 Pyqt QStackedWidget堆栈窗体的更多相关文章

  1. 初学Qt——菜单栏QAction+ QstackedWidget堆栈窗体实现切换分页

    QstackedWidget 堆栈窗体,具体不作详述,stackedWidget 主要实现效果类似与界面分页效果,主要常与QListWidget QtreeWidget QTableWidget等结合 ...

  2. Qt5布局管理(三)——QStackedWidget堆栈窗口类

    转载:LeeHDsniper 实例效果如下图: 如上图,堆栈窗口左半部分是一个QListWidget对象,右半部分是分别是三个标签.通过点击左边不同的项目,可以使得右边的Lable进行切换. 具体的结 ...

  3. 转载:pyqt线程间通过 信号/槽 通信

    转自:http://blog.sina.com.cn/s/blog_613d5bb701016qzv.html 信号(singal)与槽(slot)用于对象相互通信,信号:当某个对象的某个事件发生时, ...

  4. Pyqt QDockWidget 停靠窗体

    网上的一个关于QDockWidget 停靠窗体的教程 代码: # -*- coding: utf-8 -*- from PyQt4.QtGui import * from PyQt4.QtCore i ...

  5. 004——转载C#禁止改变窗体大小

    原文链接:http://www.cnblogs.com/shaozhuyong/p/5545005.html 1.先把MaximizeBox和MinimumBox设置为false,这时你发现最大最小化 ...

  6. (转载)C# winform 在一个窗体中如何设置另一个窗体的TextBox的值

    方法1:修改控件的访问修饰符.(不建议使用此法) public System.Windows.Forms.TextBox textBox1; 在调用时就能直接访问 Form1 frm = new Fo ...

  7. [Qt初级] 解决 中QMainWindow和QDockWidget添加布局失败问题

    初接触Qt,使用的教程是陆文周编写的<Qt5开发及实例>一书. 其中有关于QDockWidget.QStackedWidget这些类的介绍和使用实例. 要首先说明的是书上讲的非常的清楚,代 ...

  8. Qt创建堆叠窗口

    1.QT创建堆叠窗口使用类,但是使用它时主窗口不能是MainWindow,否则会出现布局错误,本例中使用基类为QDialog QStackedWidget 2.可以配合列表框QListWidget和Q ...

  9. PyQt5创建第一个窗体(正规套路)

    一.Pyqt5 创建第一个窗体 很多人写窗体程序都是直接敲代码,不使用设计器,我个人不是很赞成这种做法.使用设计器的好处是直观.维护方便,尤其开发复杂窗体的效率高. 但是每次修改ui文件后,需要重新生 ...

随机推荐

  1. Sqli-LABS通关笔录-4

    这一关卡让我学习到了 1.管他如何,想方设法先让sql报错再说.从报错中构造sql注入语句. 2.单引号不行就来双引号.括号等等的. 这次单引号没反应了.以后我们先来黑盒测试,实在没辙再看代码. -1 ...

  2. OpenCV图像Canny边缘检测

    Canny边缘检测 图像的边缘检测的原理是检测出图像中所有灰度值变化较大的点,而且这些点连接起来就构成了若干线条,这些线条就可以称为图像的边缘函数原型:     void cvCanny(       ...

  3. thinkphp的各种内部函数 D()、F()、S()、C()、L()、A()、I()

    D() 加载Model类 M() 加载Model类 A() 加载Action类 L() 获取语言定义 C() 获取配置值    用法就是   C("这里填写在配置文件里数组的下标" ...

  4. ubuntu查找软件包

    sudo apt-cache search s_name

  5. td的title属性

    今天才知道html元素td还有一个title属性,就是一个tooltip的东西,即当你把鼠标放在td上面的时候,会弹出一个提示语,这个提示语就是td的title. 把td的文本赋值给title: ht ...

  6. jQuery FileUpload等插件的使用实例

    1.jQuery FileUpload 需要的js: jquery.js jquery.fileupload.js jquery.iframe-transport.js jquery.xdr-tran ...

  7. Angularjs与bootstrap.datetimepicker结合实现日期选择器

    http://www.lovelucy.info/angularjs-best-practices.html http://damoqiongqiu.iteye.com/blog/1917971 ht ...

  8. Kendo UI

    http://www.cnblogs.com/libingql/category/585455.html http://www.scala-china.net/discuz/forum.php?mod ...

  9. Unity3d 枚举某个目录下所有资源

    using UnityEngine; using System.Collections; using UnityEditor; using System.Collections.Generic; us ...

  10. ios CoreData NSManagedObject 生命周期

    用同样的检索条件从context检索出的对象是一个????所以 在主页的3个brand没法释放,在仅仅处理brand的时候???? 和 多个 context无关 我重写了NSManagedObject ...