返回顶部
首页 > 资讯 > 后端开发 > 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://lsjlt.com/news/189585.html(转载时请注明来源链接)

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

猜你喜欢
  • 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
  • TableLayout布局方法教程
    本篇内容介绍了“TableLayout布局方法教程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!TableLayout简介TableLayo...
    99+
    2023-06-15
  • layUI布局使用教程
    目录layui特点layui的使用1.页面元素1.1布局1.1.1固定宽度(两侧有留白效果)1.1.2完整宽度(占据屏幕宽度的100%)1.2.栅格系统1.2.1栅格布局规划1.2....
    99+
    2024-04-02
  • 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两列布局和三列布局的用法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。两列布局左列定宽,右列自适应float + margin 布局html 代码&l...
    99+
    2023-06-08
  • Div+CSS布局入门教程之页面布局和规划
    页面布局和规划是网页设计的基础,可以通过Div+CSS布局来实现。下面是一个入门教程,介绍如何进行页面布局和规划。1. 确定页面结构...
    99+
    2023-09-22
    CSS
  • HTML教程:如何使用Grid布局进行多栏布局
    HTML教程:如何使用Grid布局进行多栏布局Grid布局是现代Web设计中常用的布局方法之一,它能够将网页内容分割成多个列和行,实现灵活的多栏布局。本篇文章将介绍如何使用Grid布局来创建多栏网页布局,并提供具体的代码示例。一、Grid布...
    99+
    2023-10-25
    html Grid布局 多栏布局
  • CSS布局教程:实现对比布局的最佳方法
    CSS布局教程:实现对比布局的最佳方法,需要具体代码示例引言:CSS是一种强大的样式语言,可以用于控制网页的布局和样式。在网页设计中,经常会遇到需要实现对比布局的情况。对比布局是指网页中的两个或多个元素以对比的方式排列和展示,从而吸引用户的...
    99+
    2023-10-25
    最佳方法 CSS布局 对比布局
  • CSS布局教程:实现定位布局的最佳方法
    在Web开发中,CSS布局是非常重要的一项技能。一个好的布局能够使网页结构合理、页面效果美观,并且提升用户的交互体验。在Web布局中,定位布局常常被用来实现一些特殊的效果,比如层叠式的菜单、悬浮框等等。本文将带领大家深入了解定位布局的最佳实...
    99+
    2023-10-21
    最佳方法 CSS布局 定位布局
  • HTML教程:如何使用Grid布局进行自由布局
    在Web开发中,布局是一个必不可少的部分。而相比于过去繁琐的布局方式,CSS Grid布局提供了一种更加灵活和直观的布局方式。本教程将介绍如何使用Grid布局进行自由布局,通过具体的代码示例来让大家更好地理解和掌握。一、Grid布局简介CS...
    99+
    2023-10-21
    html Grid布局 自由布局
  • CSS布局教程:实现流体布局的最佳方法
    引言:在Web开发中,布局是一个关键的概念。一个好的布局能够使网页看起来整洁、美观,并且在不同设备上都能完美呈现。而其中一种常见的布局方式就是流体布局。本文将介绍如何使用CSS实现流体布局,并提供具体的代码示例。什么是流体布局?流体布局是指...
    99+
    2023-10-21
    CSS 布局 流体布局
  • CSS布局教程:实现圣杯布局的最佳方法
    引言:在网页开发中,布局是非常重要的一部分。好的布局能够使网页达到更好的可读性和可访问性。其中,圣杯布局是一种非常经典的布局方式,它能够在实现自适应的情况下使内容居中,保持优雅的显示效果。本文将为大家介绍如何使用最佳的方法实现圣杯布局,并给...
    99+
    2023-10-21
    最佳方法 CSS布局 圣杯布局
  • HTML教程:如何使用Grid布局进行网格布局
    引言:在现代的网页设计中,网格布局是一种非常流行和实用的布局方式。它能够帮助开发者更加灵活地控制网页的布局和排版,使得网页呈现出更加美观和易读的效果。本文将向大家介绍如何使用HTML中的Grid布局进行网格布局,并提供具体的代码示例,帮助读...
    99+
    2023-10-21
    HTML:Grid布局
  • HTML教程:如何使用Grid布局进行自动布局
    在网页设计中,页面布局起着至关重要的作用。好的布局能够使网页看起来整洁美观,提升用户体验。而在过去,我们通常使用传统的浮动布局或者弹性布局来实现页面布局,但随着技术的发展,新的布局方式也应运而生。其中,Grid布局是一种强大而灵活的布局方式...
    99+
    2023-10-21
    html 自动布局 Grid布局
  • HTML教程:如何使用Grid布局进行页面布局
    从过去的表格布局到现在的Flex布局,CSS在页面布局方面一直发展和进化。而现在,CSS Grid布局成为了一种强大且灵活的布局方法。在本教程中,我们将学习如何使用CSS Grid布局来创建复杂且漂亮的页面布局。CSS Grid布局是一个二...
    99+
    2023-10-21
    html 页面布局 Grid布局
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作