我们拖拽一个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. 行走于Swift的世界中(转)

    从Swift正式公布到现在,我基本一直在关注和摸索Swift.对于一门新语言来说,开荒阶段的探索自然是激动人心的,但是很多时候,资料的缺失和细节的隐藏也让人着实苦恼.最近几天的感受是,Swift 并不 ...

  2. 28-Truck History(poj1789最小生成树)

    http://poj.org/problem?id=1789 Truck History Time Limit: 2000MS   Memory Limit: 65536K Total Submiss ...

  3. myeclipse的user library使用方法

    让myeclipse形成一个整齐划一的jar集合 这里就使用到了编辑器的user Library功能 首先,打开编辑器然后如图操作window--->preference--> 点开后如图 ...

  4. ubuntu 14.04常见问题

    1. 改root密码 sudo passwd root 2. 显示登录框 sudo gedit /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf 添加 ...

  5. firefox ubuntu 中文包

    sudo apt-get install firefox-locale-zh-hans

  6. Ajax轮询消息自动提示(消息盒子)

    经过一下午写了个消息盒子的例子,用的是ajax方式轮询读取,没有用到后台自动“推”数据的方式,效果良好. <%@ Page Language="C#" AutoEventWi ...

  7. Python 抓取html所有特定元素的方法

    直接上代码哦,够直接了吧~ from lxml import etree #import mechanize import lxml.html #import cookielib #br = mech ...

  8. c# MSMQ 消息队列

    转  消息队列 http://www.cnblogs.com/anbylau2130/p/3469512.html

  9. Time 模块中asctime()、time()、localtime()、ctime()、gmtime()的用法

    Time 模块包含了以下内置函数,既有时间处理的,也有转换时间格式的: time.asctime([tupletime]) 接受时间元组并返回一个可读的形式“Tue Dec 11 18:07:14 2 ...

  10. vmware之VMware Remote Console (VMRC) SDK(二)

    在上篇文章中,我们用winform结合vmware的api做了一个demo,在vmrc sdk中作为plugin单独打包出来vmware-vmrc-win32-x86.exe,上篇文章的demo只能基 ...