pyqt5学习笔记:创建一个pyqt5窗口,认识pyqt5控件(P3~P7)

参考B站教程:【PyQt5 快速入门】 https://www.bilibili.com/video/BV1LT4y1e72X/?p=4&share_source=copy_web&vd_source=404581381724503685cb98601d6706fb

前几p都是关于如何安装和配置pyqt5的内容,这里不再做笔记,本笔记从P3开始。

1.安装PyQt5并尝试运行一个最简单的窗口

安装pyqt5的教程之前写过:软件使用教程二、在anaconda安装虚拟环境,并在此环境中下载和配置pyqt5-优快云博客

下面运行一个最简单的窗口文件,创建一个新python文件,输入以下代码(相关解释在代码中标记清楚了)

注意:以后所有的代码基本上按照这三步框架展开来写了!

#导入模块
import sys
from PyQt5.QtWidgets import QWidget, QApplication
if __name__== '__main__':

#1.必有!有且只有一个!创建了一个QApplication对象,变量为app指向QApplication这个类
#类QApplication()内的sys.argv意思是一个列表,是需要传进的参数
    app = QApplication(sys.argv)
#2.界面里面有啥
    widget = QWidget()#自己创建了一个界面对象

#设置窗口标题
    widget.setWindowTitle("Hello, PyQt5!")

#展示窗口,没这句就看不见界面
    widget.show()

#3.必有!程序进行循环等待状态,意思不停地运行就是检测操作做出反应
    app.exec()

2.介绍PyQt模块

PyQt模块最常用的功能模块有三个:

1)QtCore:包含了核心的非GUI的功能。主要和时间、文件与文件夹、各种数据、流、URLs、mime类文件、进程与线程一起使用。

2)QtGui:包含了窗口系统、事件处理、2D图像、基本绘画、字体和文字类。(如果需要新的画布 用这个)

3)QtWidgets:widget是插件的意思,这个模块包含了一些列创建桌面应用的UI元素。(需要一些小零件直接放窗口里的用这个)

3.具体的控件介绍

1)按钮

它的名字是QpushButton

实验代码如下:

#导入模块
import sys
from PyQt5.QtWidgets import QWidget, QApplication,QPushButton
if __name__== '__main__':
#1.创建了一个QApplication对象,变量为app指向QApplication这个类
    app = QApplication(sys.argv)

#2.界面里面有啥
    w = QWidget()
#设置窗口标题
    w.setWindowTitle("第一个PyQt程序")
#在窗口里添加控件
    btn=QPushButton("按钮")
#设置按钮的父亲是当前窗口,等于是添加到窗口显示
    btn.setParent(w)
#展示窗口,没这句就看不见界面
    w.show()

#3.程序进行循环等待状态
    app.exec()

 解释一下这个代码逻辑

...
#1.创建了一个QApplication对象,变量为app指向QApplication这个类
    app = QApplication(sys.argv)    #对应下面蓝色,这里创建了一个窗口程序
#2.界面里面有啥
    w = QWidget()                      #对应下面红色,这里创建了一个窗口
#设置窗口标题
    w.setWindowTitle("第一个PyQt程序")
#在窗口里添加控件
    btn=QPushButton("按钮")                 #对应下面绿色,这里创建了一个按钮
#设置按钮的父亲是当前窗口,等于是添加到窗口显示
    btn.setParent(w)                       #对应上面绿色,这个按钮是继承了窗口出现在窗口内
#展示窗口,没这句就看不见界面
    w.show()                           #对应上面红色,展示这个窗口
#3.程序进行循环等待状态
    app.exec()                     #对应上面蓝色,循环执行这个程序

 现在执行程序得到如下结果:

现在稍微解释一下父子继承关系,(本文说的插件跟控件是一回事)即需要用到

  插件变量.setParent(父亲) 

怎么判断父子关系

如果最后出现效果如下图所示,即插件2出现在插件 1里,插件1出现在窗口里,则满足插件1是插件2的父亲,窗口是插件1的父亲。

如果最后出现效果如下图所示,即插件2出现在窗口里,插件1出现在窗口里,则满足插件1是插件2的父亲,窗口是插件1和插件2的父亲。

2)文本 

 纯文本控件为 QLabel,位于PyQt5.QtWidgets里面。下面是代码实验,解释已经写在注释里面:

#导入模块
import sys
from PyQt5.QtWidgets import QWidget, QApplication,QLabel
if __name__== '__main__':
#1.创建了一个QApplication对象,变量为app指向QApplication这个类
    app = QApplication(sys.argv)

#2.界面里面有啥
    w = QWidget()
#设置窗口标题
    w.setWindowTitle("第一个PyQt")
#在窗口里添加控件,设置这些控件的父亲是当前窗口
    label = QLabel("账号:",w)#等价于label = QLabel("账号:")  label.setParent(w)
#显示位置与大小:x,y,w,h
    label.setGeometry(20,20,500,30)#解释一下,(20,20)指的是位置,(500,30)指的是长宽

#展示窗口,没这句就看不见界面
    w.show()

#3.程序进行循环等待状态
    app.exec()

结果如下:

3)输入框

输入框的控件名称为 QLineEdit ,位于PyQt5.QtWidgets里面。

下面是实验代码,解释放在了注释里:

#导入模块
import sys
from PyQt5.QtWidgets import QWidget, QApplication,QLabel,QLineEdit,QPushButton
if __name__== '__main__':
#1.创建了一个QApplication对象,变量为app指向QApplication这个类
    app = QApplication(sys.argv)

#2.界面里面有啥
    w = QWidget()
#设置窗口标题
    w.setWindowTitle("第一个PyQt")
#在窗口里添加纯文本
    label = QLabel("账号:",w)
    label.setGeometry(20,20,500,30)#解释一下,(20,20)指的是位置,(500,30)指的是长宽
#在窗口里添加文本框
    edit = QLineEdit(w)
    edit.setPlaceholderText("请输入账号")
    edit.setGeometry(55,20,200,20)#规定位置和大小规则同上
#在窗口里添加按钮
    btn=QPushButton("注册",w)
    btn.setGeometry(55,80,70,30)#规定位置和大小规则同上
#展示窗口,没这句就看不见界面
    w.show()

#3.程序进行循环等待状态
    app.exec()

结果如下:

解释一下位置的规定,这其实是一个绝对位置,并且按照如下坐标轴安放:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值