# _*_ coding:utf-8 _*_
import sys
from PyQt4 import QtGui class Example(QtGui.QWidget):
def __init__(self):
super(Example,self).__init__()
self.grid = QtGui.QGridLayout()
self.initUI()
self.setWindowTitle('grid layout') def initUI(self):
while self.grid.count():
item = self.grid.takeAt(0)
widget = item.widget()
# if widget has some id attributes you need to
# save in a list to maintain order, you can do that here
# i.e.: aList.append(widget.someId)
widget.deleteLater() names=['Cls','Bck','','Close','','','','/','',
'','','*','','2,','','-','','.','=','+'] j=0
pos=[(0,0),(0,1),(0,2),(0,3),
(1,0),(1,1),(1,2),(1,3),
(2,0),(2,1),(2,2),(2,3),
(3,0),(3,1),(3,2),(3,3),
(4,0),(4,1),(4,2),(4,3)]
for iterm in names:
button=QtGui.QPushButton(iterm)
if j==2:
change=QtGui.QPushButton(u'文本编辑器')
self.grid.addWidget(change,0,2)
change.clicked.connect(self.otherUI) else:
self.grid.addWidget(button,pos[j][0],pos[j][1])
j=j+1 self.setLayout(self.grid)
self.resize(300,300)
def otherUI(self):
while self.grid.count():
item = self.grid.takeAt(0)
widget = item.widget()
# if widget has some id attributes you need to
# save in a list to maintain order, you can do that here
# i.e.: aList.append(widget.someId)
widget.deleteLater()
title=QtGui.QLabel('Title')
author=QtGui.QLabel('Author')
review=QtGui.QLabel('Review') titleEdit=QtGui.QLineEdit()
authorEdit=QtGui.QLineEdit()
reviewEdit=QtGui.QTextEdit() self.grid.setSpacing(10) self.grid.addWidget(title,1,0)
self.grid.addWidget(titleEdit,1,1) self.grid.addWidget(author,2,0)
self.grid.addWidget(authorEdit,2,1) self.grid.addWidget(review,3,0)
self.grid.addWidget(reviewEdit,3,1,5,1) back=QtGui.QPushButton(u'返回')
back.clicked.connect(self.initUI)
self.grid.addWidget(back,6,2) self.setLayout(self.grid)
self.resize(300,300) app=QtGui.QApplication(sys.argv)
ex=Example()
ex.show()
sys.exit(app.exec_())

展示了如何通过QGridLayout实现窗体控件布局管理。同时,简单的实现了一下两个界面之间的切换。

解释一下如何删除一个部件管理器的组件:

        while self.grid.count():
item = self.grid.takeAt(0)
widget = item.widget()
# if widget has some id attributes you need to
# save in a list to maintain order, you can do that here
# i.e.: aList.append(widget.someId)
widget.deleteLater()

pyqt布局管理器QGridLayout简单示例的更多相关文章

  1. pyqt布局管理器

    有时候,碰到错误: QWidget::setLayout: Attempting to set QLayout “” on MainWindow “”, which already has a lay ...

  2. Android布局管理器-使用TableLayout表格布局管理器实现简单的用户登录页面

    场景 Android布局管理器-使用FrameLayout帧布局管理器显示层叠的正方形以及前景照片: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article ...

  3. QT5每日一学(五)QT布局管理器

    Qt中的布局管理器主要包括 QBoxLayout基本布局管理器 QGridLayout栅格布局管理器 QFormLayout窗体布局管理器 而基本布局管理器又分为QHBoxLayout水平布局管理器和 ...

  4. Android布局管理器-使用LinearLayout实现简单的登录窗口布局

    场景 Android布局管理器-从实例入手学习相对布局管理器的使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1038389 ...

  5. JAVA简单的网格布局管理器--JAVA基础

    网格布局管理器: GridLayoutDemo.java: import java.awt.GridLayout;import javax.swing.JButton;import javax.swi ...

  6. Java Swing布局管理器GridBagLayout的使用示例 [转]

    GridBagLayout是java里面最重要的布局管理器之一,可以做出很复杂的布局,可以说GridBagLayout是必须要学好的的, GridBagLayout 类是一个灵活的布局管理器,它不要求 ...

  7. 5、Java Swing布局管理器(FlowLayout、BorderLayout、CardLayout、BoxLayout、GirdBagLayout 和 GirdLayout)

    5.Java-Swing常用布局管理器       应用布局管理器都属于相对布局,各组件位置可随界面大小而相应改变,不变的只是其相对位置,布局管理器比较难以控制,一般只在界面大小需要改是才用,但即使这 ...

  8. Java-Swing常用布局管理器

    http://www.cnblogs.com/hthuang/p/3460234.html   5.Java-Swing常用布局管理器       应用布局管理器都属于相对布局,各组件位置可随界面大小 ...

  9. Qt 布局管理器

    在一个颜值当道的今天,无论买衣服,买车还是追星,颜值的高低已经变成了大家最看重的(不管男性女性都一样,千万别和我说你不是):而对于程序猿来说,开发一款软件,不再只注重逻辑和稳定性,美观和用户友好性也是 ...

随机推荐

  1. C-main函数剖析。

    对于main函数.我想不论什么一个接触到C语言的都不会陌生,可是说起main()函数有參数,你可能会产生非常多疑问了. 首先,我们来看下msdn,这个里面对main()函数有具体的说明. 在这里,我们 ...

  2. yml在线格式转换工具(properties)

    分享一个在线properties 转 yml工具,也支持yml转properties, 域名非常简单好记,直接在地址栏里输入toyaml.com,地址:http://toyaml.com/ yml,即 ...

  3. ASP.NET#LinqDataSource控件配置对象模型时遇到的问题

    使用LinqDataSource控件时,配置数据源的时候,发现没有DataContext对象可选,但已通过可视化操作完成了对象模型的建立.这个时候,可以通过现在Default.aspx.cs文件中做如 ...

  4. Apache-一个IP多个主机域名

    #配置虚拟主机名 NameVirtualHost 192.168.209.128 <VirtualHost 192.168.209.128> DocumentRoot /htdocs/wi ...

  5. Hadoop Archives

    原文地址:http://hadoop.apache.org/docs/r1.0.4/cn/hadoop_archives.html 什么是Hadoop archives? 如何创建archive? 如 ...

  6. PMP备考经验分享

    大学毕业到现在工作已经5年了,在最初的3年里一直从事软件开发的工作,但是在后面的工作时间里,接触到了项目管理,不仅 需要自己能做,而且要带领团队做,管控项目了.当时部门里的技术经理学习过PMP,并参加 ...

  7. 将Log4J的日志内容发送到agent的source

    项目中使用log4j打印的内容同时传输到flume 1.flume端 flume的agent配置内容如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 a1.sour ...

  8. OpenXml读取word内容注意事项

    OpenXml读取word内容注意事项 1.使用OpenXml读取word内容,word后缀必须是".docx":如果word后缀是".doc"需要转成&quo ...

  9. python学习笔记012——locals与globals

    1 定义 globals() 功能:收集全局变量参数:无返回值:得到一个收集全局变量的字典(会包含系统的内置变量) locals() 功能:收集局部变量参数:无返回值:得到一个收集局部变量的字典 a ...

  10. DataGridView合并单元格(一列或一行)

    #region"合并单元格的测试(一列或一行)" // int?是搜索一种类型(可空类型),普通的int不能为null,而用int?,其值可以为null //private int ...