干货 | 一分钟了解PyQt的绝对定位


本篇推文共计1000个字,阅读时间约1分钟。

布局管理是GUI编程中的重要部分。布局管理是一种如何在应用窗口上放置组件的方法。

我们可以通过两种基本方式来管理布局。

绝对定位和布局类。

今天我们首先来谈谈的是PyQt编程中的绝对定位,绝对定位就是每个控件按程序员自己指定的位置进行放置。

简单明了就是"不要你觉得,要我觉得"。

可能听到这里你一脸懵逼,不知道为什么,下面本文就来为你解释。

当你使用绝对定位,我们首先要了解以下窗口限制:

1.如果我们调整了窗口的大小,窗口里面控件的大小和位置保持不变,不会随着窗口的改变而改变。

2.在不同平台上,应用程序看起来可能会不同。

3.更改字体可能会破坏应用程序的布局。

4.如果决定改变布局,我们必须将每个控件彻底的加以修改,这个过程是很繁琐和耗时的。


我们来看以下代码例子:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel
class Example(QWidget):

    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        lbl1 = QLabel('我是一个码农', self)
        lbl1.move(15, 10)

        lbl2 = QLabel('欢迎大家关注本公众号', self)
        lbl2.move(35, 40)

        lbl3 = QLabel('你的支持是我不断前行的动力', self)
        lbl3.move(55, 70)

        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('绝对定位演示')
        self.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

在我们的例子中使用的都是标签(Label)。我们通过提供x和y的坐标值来定位它们。坐标系的原点是控件的左上角。x值增长是由左到右。y值增长是从上到下。

如下代码截图:

lbl3 = QLabel('你的支持是我不断前行的动力', self)
        lbl3.move(55, 70)

整个程序执行起来如下所示:

总结一下绝对定位的缺点:

1.窗口变化时,要在代码中对每个组件的位置及大小进行调整。

2.标签组件设置固定大小的话,标签组件上的文本可能不会完整显示。

3.不同操作系统的默认字体并不相同,所以固定大小难以实现跨平台。


既然绝对定位有这么多缺点,那我们下期看看

另外一种管理布局的方式,敬请期待。

本文如有任何疑问,可发送疑问至后台,工作人员看到后会第一时间为你解决。

END


图片|网络

编辑|一个码农

你与世界

只差一个

公众号

喜欢本文的话麻烦你点个“关注”加“在看”

觉得写得不错的话可以点击下方“喜欢作者”

你的支持是我不断前行的动力

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值