一、新建六个label,命名为1~6,然后显示,代码和运行结果如下

import sys
from PyQt5.QtWidgets import QLabel,QGridLayout,QWidget,QApplicationif __name__ == "__main__":app = QApplication(sys.argv)win = QWidget()                   #新建一个窗口win.resize(640, 480)              #窗口大小为640X480grid = QGridLayout(win)label1 = QLabel("11111111")           #新建 label1,命名为11111111label2 = QLabel("22222222")           #新建 label1,命名为22222222label3 = QLabel("33333333")           #新建 label1,命名为33333333label4 = QLabel("44444444")           #新建 label1,命名为44444444label5 = QLabel("55555555")           #新建 label1,命名为55555555label6 = QLabel("66666666")           #新建 label1,命名为66666666label1.setStyleSheet("background-color:red")          #label1设置为红色label2.setStyleSheet("background-color:green")        #label2设置为绿色label3.setStyleSheet("background-color:blue")         #label3设置为蓝色label4.setStyleSheet("background-color:yellow")       #label4设置为黄色label5.setStyleSheet("background-color:pink")         #label5设置为粉色label6.setStyleSheet("background-color:purple")       #label6设置为紫色grid.addWidget(label1, 0, 0)                       #label布置在第0行第0例grid.addWidget(label2, 1, 0)                       #label布置在第1行第0例grid.addWidget(label3, 1, 1)                       #label布置在第1行第1例grid.addWidget(label4, 2, 0)                       #label布置在第2行第0例grid.addWidget(label5, 2, 1)                       #label布置在第2行第0例grid.addWidget(label6, 3, 1)                       #label布置在第3行第0例win.show()                     #显示窗口sys.exit(app.exec_())

二、修改label1占据四列,代码和结果如下。

import sys
from PyQt5.QtWidgets import QLabel,QGridLayout,QWidget,QApplicationif __name__ == "__main__":app = QApplication(sys.argv)win = QWidget()                   #新建一个窗口win.resize(640, 480)              #窗口大小为640X480grid = QGridLayout(win)label1 = QLabel("11111111")           #新建 label1,命名为11111111label2 = QLabel("22222222")           #新建 label1,命名为22222222label3 = QLabel("33333333")           #新建 label1,命名为33333333label4 = QLabel("44444444")           #新建 label1,命名为44444444label5 = QLabel("55555555")           #新建 label1,命名为55555555label6 = QLabel("66666666")           #新建 label1,命名为66666666label1.setStyleSheet("background-color:red")          #label1设置为红色label2.setStyleSheet("background-color:green")        #label2设置为绿色label3.setStyleSheet("background-color:blue")         #label3设置为蓝色label4.setStyleSheet("background-color:yellow")       #label4设置为黄色label5.setStyleSheet("background-color:pink")         #label5设置为粉色label6.setStyleSheet("background-color:purple")       #label6设置为紫色 grid.addWidget(label1, 0, 0, 1, 4)                #label1布置在第0行第0例,占据4行1例grid.addWidget(label2, 1, 0)                       #label布置在第1行第0例grid.addWidget(label3, 1, 1)                       #label布置在第1行第1例grid.addWidget(label4, 2, 0)                       #label布置在第2行第0例grid.addWidget(label5, 2, 1)                       #label布置在第2行第0例grid.addWidget(label6, 3, 1)                       #label布置在第3行第0例win.show()                     #显示窗口sys.exit(app.exec_())

程序运行结果,其他label都被压缩,label1被拉伸4倍,因为其他label最多只占两例,因此在整个窗口比例中其他窗口只占一半

三、在步骤二基础上修改label4占据两行,代码和结果如下。

import sys
from PyQt5.QtWidgets import QLabel,QGridLayout,QWidget,QApplicationif __name__ == "__main__":app = QApplication(sys.argv)win = QWidget()                   #新建一个窗口win.resize(640, 480)              #窗口大小为640X480grid = QGridLayout(win)label1 = QLabel("11111111")           #新建 label1,命名为11111111label2 = QLabel("22222222")           #新建 label1,命名为22222222label3 = QLabel("33333333")           #新建 label1,命名为33333333label4 = QLabel("44444444")           #新建 label1,命名为44444444label5 = QLabel("55555555")           #新建 label1,命名为55555555label6 = QLabel("66666666")           #新建 label1,命名为66666666label1.setStyleSheet("background-color:red")          #label1设置为红色label2.setStyleSheet("background-color:green")        #label2设置为绿色label3.setStyleSheet("background-color:blue")         #label3设置为蓝色label4.setStyleSheet("background-color:yellow")       #label4设置为黄色label5.setStyleSheet("background-color:pink")         #label5设置为粉色label6.setStyleSheet("background-color:purple")       #label6设置为紫色grid.addWidget(label1, 0, 0, 1, 4)                 #label1布置在第0行第0例,占据4行1例grid.addWidget(label2, 1, 0)                       #label布置在第1行第0例grid.addWidget(label3, 1, 1)                       #label布置在第1行第1例grid.addWidget(label4, 2, 0, 2, 1)                 #label布置在第2行第0例,占据2行1例grid.addWidget(label5, 2, 1)                       #label布置在第2行第0例grid.addWidget(label6, 3, 1)                       #label布置在第3行第0例win.show()                     #显示窗口sys.exit(app.exec_())

程序运行结果,label4占据两例,其他label保持不变

四、使用setRowStretch方法进对行进行拉伸,代码和结果如下

import sys
from PyQt5.QtWidgets import QLabel,QGridLayout,QWidget,QApplicationif __name__ == "__main__":app = QApplication(sys.argv)win = QWidget()                   #新建一个窗口win.resize(640, 480)              #窗口大小为640X480grid = QGridLayout(win)label1 = QLabel("11111111")           #新建 label1,命名为11111111label2 = QLabel("22222222")           #新建 label1,命名为22222222label3 = QLabel("33333333")           #新建 label1,命名为33333333label4 = QLabel("44444444")           #新建 label1,命名为44444444label5 = QLabel("55555555")           #新建 label1,命名为55555555label6 = QLabel("66666666")           #新建 label1,命名为66666666label1.setStyleSheet("background-color:red")          #label1设置为红色label2.setStyleSheet("background-color:green")        #label2设置为绿色label3.setStyleSheet("background-color:blue")         #label3设置为蓝色label4.setStyleSheet("background-color:yellow")       #label4设置为黄色label5.setStyleSheet("background-color:pink")         #label5设置为粉色label6.setStyleSheet("background-color:purple")       #label6设置为紫色grid.addWidget(label1, 0, 0, 1, 4)               #label1布置在第0行第0例,占据4行1例grid.addWidget(label2, 1, 0)                       #label布置在第1行第0例grid.addWidget(label3, 1, 1)                       #label布置在第1行第1例grid.addWidget(label4, 2, 0, 2, 1)                #label布置在第2行第0例,占据2行1例grid.addWidget(label5, 2, 1)                       #label布置在第2行第0例grid.addWidget(label6, 3, 1)                       #label布置在第3行第0例 grid.setRowStretch(0, 1)                 #使用setRowStretch行拉伸,将第0行拉伸1倍win.show()                     #显示窗口sys.exit(app.exec_())被程序运行结果,整个窗口绝大部分都label1占据

五、在步骤四的基础上,想要恢复步骤三的显示内容,则需要将第一行都做一次拉伸,代码和结果如下

import sys
from PyQt5.QtWidgets import QLabel,QGridLayout,QWidget,QApplicationif __name__ == "__main__":app = QApplication(sys.argv)win = QWidget()                   #新建一个窗口win.resize(640, 480)              #窗口大小为640X480grid = QGridLayout(win)label1 = QLabel("11111111")           #新建 label1,命名为11111111label2 = QLabel("22222222")           #新建 label1,命名为22222222label3 = QLabel("33333333")           #新建 label1,命名为33333333label4 = QLabel("44444444")           #新建 label1,命名为44444444label5 = QLabel("55555555")           #新建 label1,命名为55555555label6 = QLabel("66666666")           #新建 label1,命名为66666666label1.setStyleSheet("background-color:red")          #label1设置为红色label2.setStyleSheet("background-color:green")        #label2设置为绿色label3.setStyleSheet("background-color:blue")         #label3设置为蓝色label4.setStyleSheet("background-color:yellow")       #label4设置为黄色label5.setStyleSheet("background-color:pink")         #label5设置为粉色label6.setStyleSheet("background-color:purple")       #label6设置为紫色grid.addWidget(label1, 0, 0, 1, 4)               #label1布置在第0行第0例,占据4行1例grid.addWidget(label2, 1, 0)                     #label布置在第1行第0例grid.addWidget(label3, 1, 1)                     #label布置在第1行第1例grid.addWidget(label4, 2, 0, 2, 1)               #label布置在第2行第0例,占据2行1例grid.addWidget(label5, 2, 1)                     #label布置在第2行第0例grid.addWidget(label6, 3, 1)                     #label布置在第3行第0例    grid.setRowStretch(0, 1)                 #使用setRowStretch行拉伸,将第0行拉伸1倍grid.setRowStretch(1, 1)                 #使用setRowStretch行拉伸,将第1行拉伸1倍grid.setRowStretch(2, 1)                 #使用setRowStretch行拉伸,将第2行拉伸1倍grid.setRowStretch(3, 1)                 #使用setRowStretch行拉伸,将第3行拉伸1倍win.show()                     #显示窗口sys.exit(app.exec_())

六、对第一例进行例拉伸,代码和结果如下

import sys
from PyQt5.QtWidgets import QLabel,QGridLayout,QWidget,QApplicationif __name__ == "__main__":app = QApplication(sys.argv)win = QWidget()                   #新建一个窗口win.resize(640, 480)              #窗口大小为640X480grid = QGridLayout(win)label1 = QLabel("11111111")           #新建 label1,命名为11111111label2 = QLabel("22222222")           #新建 label1,命名为22222222label3 = QLabel("33333333")           #新建 label1,命名为33333333label4 = QLabel("44444444")           #新建 label1,命名为44444444label5 = QLabel("55555555")           #新建 label1,命名为55555555label6 = QLabel("66666666")           #新建 label1,命名为66666666label1.setStyleSheet("background-color:red")          #label1设置为红色label2.setStyleSheet("background-color:green")        #label2设置为绿色label3.setStyleSheet("background-color:blue")         #label3设置为蓝色label4.setStyleSheet("background-color:yellow")       #label4设置为黄色label5.setStyleSheet("background-color:pink")         #label5设置为粉色label6.setStyleSheet("background-color:purple")       #label6设置为紫色grid.addWidget(label1, 0, 0, 1, 4)               #label1布置在第0行第0例,占据4行1例grid.addWidget(label2, 1, 0)                     #label布置在第1行第0例grid.addWidget(label3, 1, 1)                     #label布置在第1行第1例grid.addWidget(label4, 2, 0, 2, 1)               #label布置在第2行第0例,占据2行1例grid.addWidget(label5, 2, 1)                     #label布置在第2行第0例grid.addWidget(label6, 3, 1)                     #label布置在第3行第0例grid.setColumnStretch(0,1)                       #对第0例拉伸1倍win.show()                     #显示窗口sys.exit(app.exec_())

七、与行一样,如果想要恢复步骤五的显示结果,需要对每例都进行拉伸操作,代码和结果如下

import sys
from PyQt5.QtWidgets import QLabel,QGridLayout,QWidget,QApplicationif __name__ == "__main__":app = QApplication(sys.argv)win = QWidget()                   #新建一个窗口win.resize(640, 480)              #窗口大小为640X480grid = QGridLayout(win)label1 = QLabel("11111111")           #新建 label1,命名为11111111label2 = QLabel("22222222")           #新建 label1,命名为22222222label3 = QLabel("33333333")           #新建 label1,命名为33333333label4 = QLabel("44444444")           #新建 label1,命名为44444444label5 = QLabel("55555555")           #新建 label1,命名为55555555label6 = QLabel("66666666")           #新建 label1,命名为66666666label1.setStyleSheet("background-color:red")          #label1设置为红色label2.setStyleSheet("background-color:green")        #label2设置为绿色label3.setStyleSheet("background-color:blue")         #label3设置为蓝色label4.setStyleSheet("background-color:yellow")       #label4设置为黄色label5.setStyleSheet("background-color:pink")         #label5设置为粉色label6.setStyleSheet("background-color:purple")       #label6设置为紫色grid.addWidget(label1, 0, 0, 1, 4)               #label1布置在第0行第0例,占据4行1例grid.addWidget(label2, 1, 0)                     #label布置在第1行第0例grid.addWidget(label3, 1, 1)                     #label布置在第1行第1例grid.addWidget(label4, 2, 0, 2, 1)               #label布置在第2行第0例,占据2行1例grid.addWidget(label5, 2, 1)                     #label布置在第2行第0例grid.addWidget(label6, 3, 1)                     #label布置在第3行第0例    grid.setColumnStretch(0, 1)                       ##对第0例拉伸1倍grid.setColumnStretch(1, 1)grid.setColumnStretch(2, 1)grid.setColumnStretch(3, 1)win.show()                     #显示窗口sys.exit(app.exec_())

PYQT5 QGridLayout及setRowStretch、setColumnStretch用法简探相关推荐

  1. Python中的基本函数及其常用用法简析

    分享Python中的基本函数及其常用用法简析,首先关于函数的解释函数是为了达到某种目的而采取的行为,函数是可重复使用的,用来实现某个单一功能或者功能片段的代码块,简单来说就是由一系列的程序语句组成的程 ...

  2. fuser 用法简析

    fuser 用法简析 fuser [功能]  fuser 可以显示出当前哪个程序在使用磁盘上的某个文件.挂载点.甚至网络端口,并给出程序进程的详细信息. [描述]  fuser显示使用指定文件或者文件 ...

  3. 常用标点符号用法简表

    2019独角兽企业重金招聘Python工程师标准>>> 一.基本定义 句子,前后都有停顿,并带有一定的句调,表示相对完整的意义.句子前后或中间的停顿,在口头语言中,表现出来就是时间间 ...

  4. emit python 作用,PyQT5 emit 和 connect的用法详解

    对于PyQT4, PyQT5在一些使用上有着比较明显的变化有很大的变化,让人惊讶是在emit和connect上的一些变化比较有意思,相信也是QT为了更好的和Python相结合做的改进. 先上一张图: ...

  5. 【Android】BroadCast用法简示

    BroadCast用法简示 How To Use 注册 val intentFilter = IntentFilter() intentFilter.addAction(BroadcastAction ...

  6. pyqt5 qgridlayout获取元素位置

    PyQt5中获取控件在QLayout布局中所在的行数列数 删除单个元素,ui不变,当删除正行时,ui会自动删除正行,但是行列序号还是不变. 在使用PyQt5库编写界面程序的时候,想要获取布局中某个控件 ...

  7. python中format函数用法简书_从Python安装到语法基础,这才是初学者都能懂的爬虫教程...

    Python和PyCharm的安装:学会Python和PyCharm的安装方法 变量和字符串:学会使用变量和字符串的基本用法 函数与控制语句:学会Python循环.判断语句.循环语句和函数的使用 Py ...

  8. PrintWriter用法简析

    public class PrintWriterextends Writer 向文本输出流打印对象的格式化表示形式.此类实现在 PrintStream 中的所有 print 方法.它不包含用于写入原始 ...

  9. python中format函数用法简书_Python 中format 的用法

    format是python2.6新增的一个格式化字符串的方法,相对于老版的%格式方法,它有很多优点. 1.不需要理会数据类型的问题,在%方法中%s只能替代字符串类型 2.单个参数可以多次输出,参数顺序 ...

最新文章

  1. 抢票软件原理_手机部应届生软件大赛 | SHOW MI YOUR CODE
  2. Windows Server 2008 没有磁盘清理工具的情况下使用系统提供的磁盘清理工具
  3. c++项目源码_C/C++学习日记:用C++制作餐饮管理系统(附源码),可以用来做毕设的项目!...
  4. 数据库---表的操作
  5. command shortcut paste
  6. Go Web开发之Revel - 返回值
  7. MATLAB机械动力分析,基于MATLAB的柔性机械臂动力学分析.pdf
  8. 数据集加载--load_digits
  9. 《SEM长尾搜索营销策略解密》一一2.10 小领域文化进入红利期
  10. dw整个网站html文件怎么放一起,Dreamweaver模板如何批量做网页
  11. 解决:修改docker bip项重启后,docker0的ip仍不变
  12. F - 喜欢砍竹子的黑泽明
  13. 天工杂志天工杂志社天工编辑部2022年第25期目录
  14. xp如何添加桌面计算机回收站,WinXP如何找到回收站图标?
  15. TISAX认证详解来啦!
  16. 基于微信小程序的民宿酒店预订系统
  17. java的体系结构_java体系结构介绍
  18. 如何用电脑录制一个教学视频
  19. Unicode汉字内码表1
  20. 驱动以SN码获取流程定制Barcode属性

热门文章

  1. 关于word插入题注“题注或页码中不含章节号”错误提示
  2. 高等数学——求解不定积分的经典换元法
  3. 软件开发的能力体系及锻炼
  4. 企业集群平台架构设计与实现--LVS篇(二)
  5. 【本人秃顶程序员】图解分布式架构的演进过程
  6. JAVA8 Map新方法:compute,computeIfAbsent,putIfAbsent与put的区别
  7. Blender - 法向 缩放 , Shrink Fatten 应用
  8. apk对齐优化,作为移动开发程序员应该怎样去规划自己的学习路线?系列篇
  9. 回顾总结-----第九届中国云计算大会,量子计算机为最大亮点
  10. 华为云ECS服务器中通过docker部署ELK-kibana