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 布局管理器
在一个颜值当道的今天,无论买衣服,买车还是追星,颜值的高低已经变成了大家最看重的(不管男性女性都一样,千万别和我说你不是):而对于程序猿来说,开发一款软件,不再只注重逻辑和稳定性,美观和用户友好性也是 ...
随机推荐
- 更换已存在项目的svn的地址
CreateTime--2017年11月23日16:20:14 Author:Marydon 如何更换已存在项目的svn的地址? 参考链接:http://blog.csdn.net/sinat_2 ...
- fread与read的差别(文件io补充)
这里有一个我们常常提出的问题就是fread,read的差别.(当然这两个分别代表了操作文件系统的两套不同的函数,包含open,read, write, seek 等). 一.他们的差别就是一个(rea ...
- webservice系统学习笔记3-分析wsdl文件的组成
详细分析前面章节的服务的wsdl文件 1.http://localhost:8888/ws01?wsdl 2.http://localhost:8888/ws01?xsd=1 在接口服务中添加复杂类型 ...
- 16、java包装类
一.包装类的由来: JAVA是面向对象的编程语言,但它也包含了8种基本数据类型,这8个基本数据类型不支持面向对象的编程机制,基本数据类型的数据也不具备“对象”的特性:没有属性,方法可以被调用.JAVA ...
- 基于FFmpeg的音频编码(PCM数据编码成AAC android)
概述 在Android上实现录音,并利用 FFmpeg将PCM数据编码成AAC. 详细 代码下载:http://www.demodashi.com/demo/10512.html 之前做的一个demo ...
- 架构-LAMP特级学习(网站大存储量解决方案)
数据库采用主从.分区技术 数据库优化
- HDUOJ -----Color the ball
Color the ball Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- 【LeetCode】140. Word Break II
Word Break II Given a string s and a dictionary of words dict, add spaces in s to construct a senten ...
- Hadoop Map/Reduce教程
原文地址:http://hadoop.apache.org/docs/r1.0.4/cn/mapred_tutorial.html 目的 先决条件 概述 输入与输出 例子:WordCount v1.0 ...
- 【Linux】目录权限与文件权限
现在我们知道了Linux系统内文件的三种身份(拥有者.群组与其他人),知道每种身份都有三种权限(rwx),已知道能够使用chown, chgrp, chmod去修改这些权限与属性,当然,利用ls -l ...