我们拖拽一个UI文件,转为PY文件后生成一个类Ui_MainWindow

此时,我们新建一个文件,用来控制业务逻辑(继承界面中的类),跟界面分开,这样我们就完成了界面和逻辑相分离(这段代码使用率基本100%,牢牢记住)。

 __author__ = "WSX"
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from first import * #导入了Ui_MainWindow类 class MyMainWindows(QMainWindow, Ui_MainWindow): #新建一个类 Ui_MainWindow 为first中的一个类
def __init__(self,parent=None):
super(MyMainWindows,self).__init__(parent)
self.setupUi(self) if __name__ == "__main__":
#所有的PyQt5应用必须创建一个应用(Application)对象。
app = QApplication(sys.argv) #QApplication类管理GUI程序的控制流和主要设置,是基于QWidget的,为此特化了QGuiApplication的一些功能,处理QWidget特有的初始化和结束收尾工作。
mywin = MyMainWindows()
mywin.show()
sys.exit(app.exec_())

右击运行,见效果

布局管理器用来管理空间之间的排版和布局(很重要,这个必须理解):

(从上往下依次为:垂直、水平、栅格、表单布局)

1. 绝对布局

Geometry 属性用来控制布局,它在pyqt中主要用来控制 绝对坐标和自身大小。

 self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(170, 170, 75, 23))
self.pushButton.setObjectName("pushButton")

这段代码主要设置上面所说的属性

2. 使用布局管理器布局

为什么要用布局管理器,我们觉得自己设计的界面不美观时,每次都需要手动来调整控件的位置,十分的麻烦。并且布局管理器会根据窗口的缩放来动态改变空间大小。

因此学好布局管理器十分重要!!!!!!

① 垂直布局    大家可以自己拖拽四种布局方式来观察代码变化。

② 栅格布局

③ 水平布局(介绍一下下)

这是我们水平布局的四个控件

但是我们想让他们中间留一点空隙。。。 挨的太近了。这时就需要这个控件了。哈哈哈

(Vertical spacer表示俩布局管理器 或者按钮 水平 分开一点  , 

(Horizontal spacer 表示按钮和布局管理器分开一点)

(Horizontal Line 表示分开不同的类)  注: 这些在运行时不会显出来。

3.minimumsize 和 maixmumsize(设置控件在布局管理器中的最大个最小尺寸),简单来说类似于 css 调整界面大小时,不会因为界面很小变为特别小。

4.sizepolicy

sizeHint(控件被期望的尺寸) 和 minisizeHint(控件被压缩最小尺寸) 需要知道

sizepolicy的作用是,如果布局管理器满足不了我们,我们就需要sizepolicy进行微调。

解释一下这个吧。

Fixed: 代表控件具有sizeHint 所提示的尺寸并且不改变

还可以设置 Tab 快捷键 控件切换的顺序(获得焦点)

PyQt5(2)——调整布局(布局管理器)第一个程序的更多相关文章

  1. 向Windows 日志管理器写入系统程序日志信息

    标准样例代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Da ...

  2. 英特尔® 硬件加速执行管理器安装指南 — Microsoft Windows*

    介绍 本文将指导您安装英特尔® 硬件加速执行管理器(英特尔® HAXM),这是一款可以使用英特尔® 虚拟化技术(VT)加快 Android* 开发速度的硬件辅助虚拟化引擎(管理程序). 前提条件 英特 ...

  3. rpm 包管理器

    rpm 包管理器 二进制应用程序的组成部分: 二进制文件.库文件.配置文件.帮助文件 程序包管理器:不同厂商的程序,包管理器也不同. debian:deb文件, dpkg包管理器 redhat: rp ...

  4. 承上启下继往开来,Python3上下文管理器(ContextManagers)与With关键字的迷思

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_217 在开发过程中,我们会经常面临的一个常见问题是如何正确管理外部资源,比如数据库.锁或者网络连接.稍不留意,程序将永久保留这些资 ...

  5. PyQt5布局管理器

    布局分类 绝对定位:使用move方法将空间直接定死在某个坐标,不会随着窗口大小的改变而改变 可变布局:使用各种布局管理器,实现组件的位置和大小随着窗口的变化而变化 布局管理器 QHBoxLayout: ...

  6. JAVA布局管理器

    JAVA的界面布局原理:由于Java是跨平台语言,使用绝对坐标显然会导致问题,即在不同平台.不同分辨率下的显示效果不一样.Java 为了实现跨平台的特性并且获得动态的布局效果,Java将容器内的全部组 ...

  7. 5、Java Swing布局管理器(FlowLayout、BorderLayout、CardLayout、BoxLayout、GirdBagLayout 和 GirdLayout)

    5.Java-Swing常用布局管理器       应用布局管理器都属于相对布局,各组件位置可随界面大小而相应改变,不变的只是其相对位置,布局管理器比较难以控制,一般只在界面大小需要改是才用,但即使这 ...

  8. Swing——布局管理器

    前言 在编写图形界面时,总是需要考虑的就是组件放在哪里,组件怎么大才合适.在Swing中就有现成的布局管理器帮我们做这些事情,我们不必写代码去一一安排.下面将介绍什么是布局管理器.Swing中常用布局 ...

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

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

随机推荐

  1. pthread_mutex_init函数与pthread_mutexattr_init函数

    直接上英文解释: pthread_mutex_init()如下: NAME pthread_mutex_init, pthread_mutex_destroy - initialise or dest ...

  2. Python获取服务器的厂商和型号信息-乾颐堂

    Python获取服务器的厂商和型号信息,在RHEHL6下,需要系统预装python-dmidecode这个包(貌似默认就已经装过了) 脚本内容如下 [root@linuxidc tmp]# cat t ...

  3. [Training Video - 4] [Groovy] Initializing log inside class with constructor

    TestService s = new TestService(log,context,testRunner) s.xyz() class TestService{ def log def conte ...

  4. Spirng.net 替换任意方法

    1.首先上客户端代码 static void Main(string[] args)        {            IApplicationContext ctx = ContextRegi ...

  5. Part3_lesson2---ARM指令分类学习

    1.算术和逻辑指令 mov.mvn.cmp.tst.sub.add.and.bic 2.比较指令 cmp和tst 3.跳转指令 b和bl 4.移位指令 lsl和ror 5.程序状态字访问指令 msr与 ...

  6. Perl 学习笔记-哈希

    1.Perl中的哈希 高效快捷, 没有大小限制. 大哈希一样很快! 命名: 和Perl其他标识符一样, 同时拥有自己的的名字空间.  $roger{"sex"} 和 $roger没 ...

  7. Spring MVC @RequestMapping浅析

    简介:@RequestMappingRequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上.用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径.RequestMapp ...

  8. 编写高质量代码改善C#程序的157个建议——建议140:使用默认的访问修饰符

    建议140:使用默认的访问修饰符(我不太赞成作者的这个观点,这样减少的代码基本可以忽略不计,但是,如果把访问修饰符补充完整,反而会使代码更加易读.我认为自己写代码时应该尽量加上访问修饰符,看别人写的代 ...

  9. struts2下面如何同时使用servlet,就是如何实现struts与servlet共存

    转载 原文链接:https://blog.csdn.net/u013358115/article/details/20706607 问题 项目要求struts2和servlet能够共存,就是strut ...

  10. Java实现四则运算---任路乾,乐滔

    1.GitHub地址:https://github.com/3116004700/ruanjiangongcheng 2.项目需求: 生成的题目中计算过程不能产生负数(完成) 生成的题目中如果存在形如 ...