pyqt布局管理器QGridLayout简单示例
# _*_ 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简单示例的更多相关文章
- pyqt布局管理器
有时候,碰到错误: QWidget::setLayout: Attempting to set QLayout “” on MainWindow “”, which already has a lay ...
- Android布局管理器-使用TableLayout表格布局管理器实现简单的用户登录页面
场景 Android布局管理器-使用FrameLayout帧布局管理器显示层叠的正方形以及前景照片: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article ...
- QT5每日一学(五)QT布局管理器
Qt中的布局管理器主要包括 QBoxLayout基本布局管理器 QGridLayout栅格布局管理器 QFormLayout窗体布局管理器 而基本布局管理器又分为QHBoxLayout水平布局管理器和 ...
- Android布局管理器-使用LinearLayout实现简单的登录窗口布局
场景 Android布局管理器-从实例入手学习相对布局管理器的使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1038389 ...
- JAVA简单的网格布局管理器--JAVA基础
网格布局管理器: GridLayoutDemo.java: import java.awt.GridLayout;import javax.swing.JButton;import javax.swi ...
- Java Swing布局管理器GridBagLayout的使用示例 [转]
GridBagLayout是java里面最重要的布局管理器之一,可以做出很复杂的布局,可以说GridBagLayout是必须要学好的的, GridBagLayout 类是一个灵活的布局管理器,它不要求 ...
- 5、Java Swing布局管理器(FlowLayout、BorderLayout、CardLayout、BoxLayout、GirdBagLayout 和 GirdLayout)
5.Java-Swing常用布局管理器 应用布局管理器都属于相对布局,各组件位置可随界面大小而相应改变,不变的只是其相对位置,布局管理器比较难以控制,一般只在界面大小需要改是才用,但即使这 ...
- Java-Swing常用布局管理器
http://www.cnblogs.com/hthuang/p/3460234.html 5.Java-Swing常用布局管理器 应用布局管理器都属于相对布局,各组件位置可随界面大小 ...
- Qt 布局管理器
在一个颜值当道的今天,无论买衣服,买车还是追星,颜值的高低已经变成了大家最看重的(不管男性女性都一样,千万别和我说你不是):而对于程序猿来说,开发一款软件,不再只注重逻辑和稳定性,美观和用户友好性也是 ...
随机推荐
- C-main函数剖析。
对于main函数.我想不论什么一个接触到C语言的都不会陌生,可是说起main()函数有參数,你可能会产生非常多疑问了. 首先,我们来看下msdn,这个里面对main()函数有具体的说明. 在这里,我们 ...
- yml在线格式转换工具(properties)
分享一个在线properties 转 yml工具,也支持yml转properties, 域名非常简单好记,直接在地址栏里输入toyaml.com,地址:http://toyaml.com/ yml,即 ...
- ASP.NET#LinqDataSource控件配置对象模型时遇到的问题
使用LinqDataSource控件时,配置数据源的时候,发现没有DataContext对象可选,但已通过可视化操作完成了对象模型的建立.这个时候,可以通过现在Default.aspx.cs文件中做如 ...
- Apache-一个IP多个主机域名
#配置虚拟主机名 NameVirtualHost 192.168.209.128 <VirtualHost 192.168.209.128> DocumentRoot /htdocs/wi ...
- Hadoop Archives
原文地址:http://hadoop.apache.org/docs/r1.0.4/cn/hadoop_archives.html 什么是Hadoop archives? 如何创建archive? 如 ...
- PMP备考经验分享
大学毕业到现在工作已经5年了,在最初的3年里一直从事软件开发的工作,但是在后面的工作时间里,接触到了项目管理,不仅 需要自己能做,而且要带领团队做,管控项目了.当时部门里的技术经理学习过PMP,并参加 ...
- 将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 ...
- OpenXml读取word内容注意事项
OpenXml读取word内容注意事项 1.使用OpenXml读取word内容,word后缀必须是".docx":如果word后缀是".doc"需要转成&quo ...
- python学习笔记012——locals与globals
1 定义 globals() 功能:收集全局变量参数:无返回值:得到一个收集全局变量的字典(会包含系统的内置变量) locals() 功能:收集局部变量参数:无返回值:得到一个收集局部变量的字典 a ...
- DataGridView合并单元格(一列或一行)
#region"合并单元格的测试(一列或一行)" // int?是搜索一种类型(可空类型),普通的int不能为null,而用int?,其值可以为null //private int ...