绝对定位布局

使用move(x, y)可以对窗口进行布局,以窗口左上角为原点,向右为 x 轴正方向,向下为 y 轴正方向,移动(x,y);

import sys

from PyQt5.QtGui import QFont
from PyQt5.QtWidgets import QWidget, QLabel, QApplication class Example(QWidget): def __init__(self):
super().__init__() self.initUI() def initUI(self):
font=QFont("微软雅黑",12)
lbl1 = QLabel('java', self)
lbl1.move(15, 10) lbl2 = QLabel('python', self)
lbl2.move(35, 40) lbl3 = QLabel('c++', self)
lbl3.move(55, 70) lbl1.setFont(font)
lbl2.setFont(font)
lbl3.setFont(font) self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('Program Language')
self.show() if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())

横向布局和纵向布局

使用QHBoxLayoutQVBoxLayout,来分别创建横向布局和纵向布局

addStretch():Adds a stretchable space (a QSpacerItem) with zero minimum size and stretch factor stretch to the end of this box layout.

addStretch()添加弹簧伸缩量,如在按钮左侧添加弹簧,则拉伸时按钮会贴近右边界。两侧添加弹簧量相同,则拉伸时居中。弹簧其实是平分了空白区域。

setGeometry (0, 0, 30, 35) 四个参数:

从屏幕上(0,0)位置开始(即为最左上角的点),显示一个30*35的界面(宽30,高35)。

import sys
from PyQt5.QtWidgets import (QWidget, QPushButton,
QHBoxLayout, QVBoxLayout, QApplication) class Example(QWidget): def __init__(self):
super().__init__() self.initUI() def initUI(self):
okButton = QPushButton("OK")
cancelButton = QPushButton("Cancel")
rightButton = QPushButton("Right") qhLayout = QHBoxLayout()
qvLayout = QVBoxLayout() qhLayout.addStretch(1) qhLayout.addWidget(okButton)
qhLayout.addWidget(cancelButton)
qvLayout.addStretch(1)
qvLayout.addLayout(qhLayout)
qvLayout.addWidget(rightButton) self.setLayout(qvLayout) self.setGeometry(300, 300, 300, 150)
self.setWindowTitle('Buttons')
self.show() if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())

表格布局

import sys
from PyQt5.QtWidgets import (QWidget, QGridLayout,
QPushButton, QApplication) class Example(QWidget): def __init__(self):
super().__init__() self.initUI() def initUI(self): grid = QGridLayout()
self.setLayout(grid) names = ['X', 'Y', '', 'Z',
'(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)'] positions = [(i, j) for i in range(5) for j in range(4)] for position, name in zip(positions, names): if name == '':
continue
button = QPushButton(name)
grid.addWidget(button, *position) self.move(300, 150) self.setWindowTitle('Demo')
self.show() if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())

PyQT5基础布局管理的更多相关文章

  1. PyQt5教程——布局管理(4)

    PyQt5中的布局管理 布局管理是GUI编程中的一个重要方面.布局管理是一种如何在应用窗口上防止组件的一种方法.我们可以通过两种基础方式来管理布局.我们可以使用绝对定位和布局类. 绝对定位 程序指定了 ...

  2. PyQt5之布局管理

    目录 一 写在开头 1.1 本文内容 二 绝对布局 三 布局类 3.1 水平布局(QHBoxLayout)和垂直布局(QVBoxLayout) 3.2 水平布局和垂直布局实例 3.3 网格布局(QGr ...

  3. java基础 布局管理器

    概念: 组建在容器(比如JFrame)中的位置和 大小 是由布局管理器来决定的.所有的容器都会使用一个布局管理器,通过它来自动进行组建的布局管理. 种类: java共提供了物种布局管理器:流式布局管理 ...

  4. 面试题-Java基础-布局管理器

    1.什么是布局管理器? 布局管理器用来在容器中组织组件.

  5. PyQt5——布局管理

    PyQt5布局管理使用方法详见:https://blog.csdn.net/jia666666/article/list/3?t=1& PyQt5布局管理汇总: 1.QHBoxLayout 2 ...

  6. 四、PyQt5布局管理(绝对&相对、水平、垂直、格栅、表单)

    目录 一.绝对布局 二.盒布局 三.格栅布局 四.格栅布局跨行跨列显示 布局管理即设置窗体上各个控件的位置,对于新手来说,这是学习的难点. 布局管理根据绝对坐标是否变动分为绝对布局和相对布局两大类.采 ...

  7. PyQT5速成教程-3 布局管理

    本文由 沈庆阳 所有,转载请与作者取得联系! 布局(Layout)管理 Qt Designer中,在工具箱中最上方可以看到有4种布局.分别是垂直布局.水平布局.栅格布局和表单布局.   四种布局 布局 ...

  8. PyQt5(2)——调整布局(布局管理器)第一个程序

    我们拖拽一个UI文件,转为PY文件后生成一个类Ui_MainWindow 此时,我们新建一个文件,用来控制业务逻辑(继承界面中的类),跟界面分开,这样我们就完成了界面和逻辑相分离(这段代码使用率基本1 ...

  9. PyQt5笔记之布局管理

    代码:界面与逻辑分离 这是使用Designer做出的GUI,然后通过转换得到的Py代码.(界面文件) # -*- coding: utf-8 -*- # Form implementation gen ...

随机推荐

  1. 只是想虐下春丽,一不当心玩了下serverless...感觉还不错哟!

    事情是这样的-- 前天下午天太热,我在家看电视,换台突然就看到了正在播<西游记>,窗外蝉声特别响,我一下就有种穿越回小学暑假的感觉.当时,我就特别想把我那台小霸王翻出来,玩两盘街霸--虐一 ...

  2. 声明提前(hoist)

    程序执行前,都会先找到var声明的变量和function声明的函数. 一.var声明的变量 程序 结果 console.log(a); var a=10; console.log(a); //unde ...

  3. git 提代码时的相关命令,Mark一下

    以前用命令提代码都是复制粘贴,现在换了工作后,特别是回退代码的命令又忘了,去网上查了好久,心累.特此Mark一下 1. 打patch: 1.1 git diff >> ljh.patch ...

  4. 什么是 RFC 2544

    什么是 RFC 2544? 如果您从事网络工作,您可能听说过它,但 RFC 2544 究竟是什么呢? RFC 的全称是 Request for comment ,请求注解.是一系列收录了互联网国际标准 ...

  5. 3D网页小实验-基于多线程和精灵动画实现RTS式单位行为

    一.实验目的: 1.在上一篇的"RTS式单位控制"的基础上添加逻辑线程,为每个单位实现ai计算: 2.用精灵动画为单位的行为显示对应的动作效果. 二.运行效果: 1.场景中的单位分 ...

  6. Cobaltstrike与MSF会话派生

    Cobaltstrike与MSF会话派生 前言 一般在渗透的过程中,Get到shell之后一般来说我喜欢上线到Cobaltstrike,但是Cobaltstrike的会话是60S更新一次,有时候功能也 ...

  7. PHP-Audit-Labs-Day1 - in_array函数缺陷

    函数缺陷原理分析 先看一段简单的源代码 class Challenge{ const UPLOAD_DIRECTORY = './solutions/'; private $file; private ...

  8. git的实用命令(撤回,合并)

    前言 在用开发项目的时候,经常会写着写着会发现写错的时候,人生没有后悔药,但是git有啊,大不了从头再来嘛. git的一些撤销操作 代码还没有存到暂存区 当我们修改了一个文件,还没有执行git add ...

  9. Cookie和Session得使用理解

    Cookie 饼干 什么是Cokkie? 1.Cookie 翻译过来是饼干的意思. 2.Cookie 是服务器通知客户端保存键值对的一种技术. 3.客户端有了 Cookie 后,每次请求都发送给服务器 ...

  10. docker-02

    环境准备 10.0.0.100这台宿主机先做好给docker容器本地yum源,其实也可以用阿里等其他的yum源 1 上传6.9和7.6的镜像到10.0.0.100这台服务器 [root@docker ...