前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >干货 | 一分钟了解PyQt的绝对定位

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

作者头像
潘永斌
发布2019-10-08 17:04:06
1K0
发布2019-10-08 17:04:06
举报
文章被收录于专栏:看那个码农看那个码农

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

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

绝对定位和布局类。

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

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

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

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

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

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

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

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

我们来看以下代码例子:

代码语言:javascript
复制
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值增长是从上到下。

如下代码截图:

代码语言:javascript
复制
lbl3 = QLabel('你的支持是我不断前行的动力', self)
        lbl3.move(55, 70)

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

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

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

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

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

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

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

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

END

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 看那个码农 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档