iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python GUI教程三:布局
  • 246
分享到

Python GUI教程三:布局

布局教程Python 2023-01-31 06:01:08 246人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

python GUI 教程三:布局 摘要:这篇文章是Python GUI教程系列的第三篇,将介绍Qt编程中的布局概念及其在Python环境下的实现 如果你英文较好,可以参考这里的文章:Http://zetcode.com/gui

python GUI 教程三:布局


摘要:这篇文章是Python GUI教程系列的第三篇,将介绍Qt编程中的布局概念及其在Python环境下的实现

如果你英文较好,可以参考这里的文章:Http://zetcode.com/gui/pyqt5/

作者:yooonGChun
微信公众号:yooongchun小屋
这里写图片描述


  • STEP 1:认识布局

    • 布局是程序组件在界面上的排布规律,比如我们常看到的退出按钮在一个界面的右上角
    • Qt提供了多种布局方式,包括:绝对定位(像素坐标位置)、框布局、网格布局
  • STEP 2:绝对定位布局

    • 绝对定位布局,顾名思义,就是通过给出对象放置在界面上的绝对像素坐标位置来安排界面
    
    # -*- coding: utf-8 -*-
    
    
    """
    该程序实现一个绝对定位布局器
    Author: yooongchun
    Time: 2018-05-07
    """
    
    import sys
    from PyQt5.QtWidgets import QMainWindow, QAction, qApp, QApplication,QWidget,QLabel
    from PyQt5.QtGui import QIcon
    
    
    # 绝对定位布局
    
    class AbsoLoca(QWidget):
        def __init__(self):
            super().__init__()
            self.initUI()
    
        def initUI(self):
            lbl1 = QLabel('Hello,it\'s an absolute layout.', self)
            lbl1.move(50, 50)
    
    
            self.setGeometry(500, 500, 500, 300)
            self.setWindowTitle('Absolute')
            self.show()
    
    if __name__=="__main__":
        app = QApplication(sys.argv)
        ex = AbsoLoca()
        sys.exit(app.exec_())

    这里写图片描述

  • STEP 3:框布局

    • 框布局指的是按照你的界面大小让程序组件来自适应水平或者垂直方向的位置及大小
    
    # -*- coding: utf-8 -*-
    
    
    """
    该程序实现一个框布局器
    Author: yooongchun
    Time: 2018-05-02
    """
    
    import sys
    from PyQt5.QtWidgets import QPushButton, QAction, qApp, QApplication,QWidget,QLabel,QHBoxLayout,QVBoxLayout
    from PyQt5.QtGui import QIcon
    
    
    # 框布局
    
    class BoxLoca(QWidget):
        def __init__(self):
            super().__init__()
            self.initUI()
    
        def initUI(self):
            okButton = QPushButton("OK")
            cancelButton = QPushButton("Cancel")
    
            hbox = QHBoxLayout()
            hbox.addStretch(1)
            hbox.addWidget(okButton)
            hbox.addWidget(cancelButton)
    
            vbox = QVBoxLayout()
            vbox.addStretch(1)
            vbox.addLayout(hbox)
    
            self.setLayout(vbox)
    
            self.setGeometry(500, 500, 500, 400)
            self.setWindowTitle('Buttons')
            self.show()
    
    if __name__=="__main__":
        app = QApplication(sys.argv)
        ex = BoxLoca()
        sys.exit(app.exec_())

    这里写图片描述

  • STEP 4:网格布局

    • 网格布局将界面按照网格进行划分,然后将组件放置到对应网格中
    
    # -*- coding: utf-8 -*-
    
    
    """
    该程序实现一个网格布局器
    Author: yooongchun
    Time: 2018-05-07
    """
    import sys
    from PyQt5.QtWidgets import QPushButton, QAction, qApp, QApplication,QWidget,QLabel,QGridLayout
    from PyQt5.QtGui import QIcon
    
    
    # 网格布局
    
    class GridLoca(QWidget):
        def __init__(self):
            super().__init__()
            self.initUI()
    
        def initUI(self):
            grid = QGridLayout()
            self.setLayout(grid)
            names = ['Cls', 'Bck', '', 'Close', '7', '8', '9', '/', '4', '5', '6', '*', '1', '2', '3', '-', '0', '.', '=',
                     '+']
            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(1200, 750)
            self.setWindowTitle('Calculator')
            self.show()
    if __name__=="__main__":
        app = QApplication(sys.argv)
        ex = GridLoca()
        sys.exit(app.exec_())

    这里写图片描述

  • STEP 5:布局复合使用:以上几种布局器可以综合起来一起使用,以设计出更加复杂的界面逻辑

    
    # -*- coding: utf-8 -*-
    
    
    """
    该程序实现布局器的复合使用
    Author: yooongchun
    Time: 2018-05-02
    """
    
    import sys
    from PyQt5.QtWidgets import QPushButton,QWidget,QLineEdit,QTextEdit, QAction, qApp, QApplication,QWidget,QLabel,QGridLayout
    from PyQt5.QtGui import QIcon
    
    
    # 控件复合使用
    
    class MoreLoca(QWidget):
      def __init__(self):
          super().__init__()
          self.initUI()
    
      def initUI(self):
          title = QLabel('Title')
          author = QLabel('Author')
          review = QLabel('Review')
    
          titleEdit = QLineEdit()
          authorEdit = QLineEdit()
          reviewEdit = QTextEdit()
    
          grid = QGridLayout()
          grid.setSpacing(10)
    
          grid.addWidget(title, 1, 0)
          grid.addWidget(titleEdit, 1, 1)
    
          grid.addWidget(author, 2, 0)
          grid.addWidget(authorEdit, 2, 1)
    
          grid.addWidget(review, 3, 0)
          grid.addWidget(reviewEdit, 3, 1, 5, 1)
    
          self.setLayout(grid)
    
          self.setGeometry(500, 500, 1500, 1200)
          self.setWindowTitle('Review')
          self.show()
    
    if __name__=="__main__":
      app = QApplication(sys.argv)
      ex = MoreLoca()
      sys.exit(app.exec_())

    这里写图片描述

--结束END--

本文标题: Python GUI教程三:布局

本文链接: https://www.lsjlt.com/news/189585.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python GUI教程三:布局
    Python GUI 教程三:布局 摘要:这篇文章是Python GUI教程系列的第三篇,将介绍Qt编程中的布局概念及其在Python环境下的实现 如果你英文较好,可以参考这里的文章:http://zetcode.com/gui...
    99+
    2023-01-31
    布局 教程 Python
  • CSS布局教程:实现三栏响应式布局的最佳方法
    前言:在网页设计中,合理的布局是非常重要的。而响应式布局则是指网页能够根据不同设备的屏幕尺寸自动调整和适应布局,以实现更好的用户体验。本文将介绍一种实现三栏响应式布局的最佳方法,并提供具体的代码示例。一、HTML结构首先,我们需要确定HTM...
    99+
    2023-10-21
    响应式布局 CSS布局方法 三栏布局
  • Python GUI布局工具Tkinter入门之旅
    目录图形用户界面 (GUI)用于创建GUI的 Python 库Tkinter 基础Tkinter WidgetsLabelButtonEntryComboboxCheckbutton...
    99+
    2024-04-02
  • flex(弹性布局)教程之常用布局
    目录一、Flex 布局是什么?任何一个容器都可以指定为 Flex 布局。行内元素也可以使用 Flex 布局。Webkit 内核的浏览器,必须加上-webkit前缀。二、常用布局公共样...
    99+
    2024-04-02
  • layUI布局使用教程
    目录layui特点layui的使用1.页面元素1.1布局1.1.1固定宽度(两侧有留白效果)1.1.2完整宽度(占据屏幕宽度的100%)1.2.栅格系统1.2.1栅格布局规划1.2....
    99+
    2024-04-02
  • TableLayout布局方法教程
    本篇内容介绍了“TableLayout布局方法教程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!TableLayout简介TableLayo...
    99+
    2023-06-15
  • PlayMaker GUI跟随布局怎么用
    这篇文章主要为大家展示了“PlayMaker GUI跟随布局怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“PlayMaker GUI跟随布局怎么用”这篇文章吧。PlayMaker GUI跟...
    99+
    2023-06-04
  • CSS布局教程:实现瀑布流布局的最佳方法
    瀑布流布局(Waterfall Layout)是一种常见的网页布局方式,它可以使不同大小的元素以多列的形式依次排列,给人一种瀑布水流般的感觉。这种布局常用于照片墙、产品展示等需要展示多个项目的网页。本文将介绍如何使用CSS实现瀑布流布局,并...
    99+
    2023-10-21
    瀑布流布局 最佳方法 CSS布局
  • python web GUI框架-NiceGUI 教程(一)
    python web GUI框架-NiceGUI 教程(一) streamlit可以在一些简单的场景下仍然推荐使用,但是streamlit实在不灵活,受限于它的核心机制,NiceGUI是一个灵活的we...
    99+
    2023-10-10
    python 前端 开发语言
  • CSS布局教程:实现对比布局的最佳方法
    CSS布局教程:实现对比布局的最佳方法,需要具体代码示例引言:CSS是一种强大的样式语言,可以用于控制网页的布局和样式。在网页设计中,经常会遇到需要实现对比布局的情况。对比布局是指网页中的两个或多个元素以对比的方式排列和展示,从而吸引用户的...
    99+
    2023-10-25
    最佳方法 CSS布局 对比布局
  • PythonGUI之tkinter布局管理教程
    目录pack常用属性pack类提供了下列函数(使用组件实例对象调用)grid属性设置grid类提供了下列函数(使用组件实例对象调用)place属性设置place类提供了下列函数(使用...
    99+
    2024-04-02
  • CSS两列布局和三列布局的用法
    这篇文章主要介绍了CSS两列布局和三列布局的用法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。两列布局左列定宽,右列自适应float + margin 布局html 代码&l...
    99+
    2023-06-08
  • CSS布局教程:实现定位布局的最佳方法
    在Web开发中,CSS布局是非常重要的一项技能。一个好的布局能够使网页结构合理、页面效果美观,并且提升用户的交互体验。在Web布局中,定位布局常常被用来实现一些特殊的效果,比如层叠式的菜单、悬浮框等等。本文将带领大家深入了解定位布局的最佳实...
    99+
    2023-10-21
    最佳方法 CSS布局 定位布局
  • HTML教程:如何使用Grid布局实现栅格布局
    在前端开发中,实现栅格布局是非常常见的需求,通过栅格布局可以灵活地排列网页中的各个元素,使页面美观且具有响应式布局。而在HTML中,我们可以使用Grid布局来实现栅格布局。本文将详细介绍如何使用Grid布局来实现栅格布局,并提供具体的代码示...
    99+
    2023-10-21
    html Grid布局 栅格布局
  • CSS布局教程:实现平衡布局的最佳方法
    引言:在网页设计中,布局是非常重要的一环。一个好的布局能够让网页内容有序地展示,提高用户的浏览体验。在众多的布局方法中,平衡布局被广泛应用,既能满足设计要求,又能适应不同设备屏幕的显示。本文将介绍实现平衡布局的最佳方法,并提供具体的代码示例...
    99+
    2023-10-21
    最佳方法 CSS布局 平衡布局
  • Div+CSS布局入门教程之页面布局和规划
    页面布局和规划是网页设计的基础,可以通过Div+CSS布局来实现。下面是一个入门教程,介绍如何进行页面布局和规划。1. 确定页面结构...
    99+
    2023-09-22
    CSS
  • CSS布局教程:实现圆形布局的最佳方法
    CSS布局教程:实现圆形布局的最佳方法,需要具体代码示例在网页设计中,常常需要实现一些独特的布局效果来吸引用户的注意力。其中,圆形布局是一种非常常见且有趣的布局效果,可以用来展示图片、图标或者其他内容。本文将介绍实现圆形布局的最佳方法,并提...
    99+
    2023-10-26
    实现方法 CSS布局 圆形布局
  • HTML教程:如何使用Grid布局进行多栏布局
    HTML教程:如何使用Grid布局进行多栏布局Grid布局是现代Web设计中常用的布局方法之一,它能够将网页内容分割成多个列和行,实现灵活的多栏布局。本篇文章将介绍如何使用Grid布局来创建多栏网页布局,并提供具体的代码示例。一、Grid布...
    99+
    2023-10-25
    html Grid布局 多栏布局
  • HTML教程:如何使用Grid布局进行自动布局
    在网页设计中,页面布局起着至关重要的作用。好的布局能够使网页看起来整洁美观,提升用户体验。而在过去,我们通常使用传统的浮动布局或者弹性布局来实现页面布局,但随着技术的发展,新的布局方式也应运而生。其中,Grid布局是一种强大而灵活的布局方式...
    99+
    2023-10-21
    html 自动布局 Grid布局
  • CSS布局教程:实现流体布局的最佳方法
    引言:在Web开发中,布局是一个关键的概念。一个好的布局能够使网页看起来整洁、美观,并且在不同设备上都能完美呈现。而其中一种常见的布局方式就是流体布局。本文将介绍如何使用CSS实现流体布局,并提供具体的代码示例。什么是流体布局?流体布局是指...
    99+
    2023-10-21
    CSS 布局 流体布局
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作