目录
1、按钮——QPushButton&QRadioButton
布局(约束):盒子布局(最常用)、网格布局(九宫格布局)、表单布局、抽屉布局
窗口:QWidget、QMainWindow、QDialog
一、入门——创建简单的界面
from PyQt5.QtWidgets import QApplication,QWidget
from PyQt5.QtGui import QIcon
import sys
if __name__=="__main__":
app=QApplication(sys.argv)#相当于打开界面(①不能少)
w=QWidget()#创建界面对象
w.setWindowTitle("第一个标题") #设置窗口标题
w.resize(300,300)#设置窗口大小
#w.move(0,0)#设置窗口在屏幕的位置,(0,0)为左上角
w.setWindowIcon(QIcon("./bg.png"))#设置窗口图标
w.show()#展示窗口
app.exec_()#程序进行循环等待状态 相当于检测界面(②不能少)
效果:
二、模块介绍
常用的三个功能模块:
- QtCore:包含了核心的非GUI的功能。主要和时间、文件与文件夹、各种数据、流、URLs、mime类文件、进程与线程一起使用
- QtGui:包含了窗口系统、事件处理、2D图像、基本绘画、字体和文字类
- QtWidgets:包含了一些列创建桌面应用的UI元素
控件:按钮、文本、输入框(文本框)
1、按钮——QPushButton&QRadioButton
QPushButton:
from PyQt5.QtWidgets import QApplication,QWidget
import sys
from PyQt5.QtWidgets import QPushButton
if __name__=="__main__":
app=QApplication(sys.argv)#相当于打开界面(①不能少)
w=QWidget()#创建界面对象
w.setWindowTitle("第一个标题") #设置窗口标题
#创建按钮
btn=QPushButton("按钮")
btn.setParent(w)#设置按钮btn为当前w窗口的,相当于再w窗口中显示这btn按钮
w.show()#展示窗口
app.exec_()#程序进行循环等待状态 相当于检测界面(②不能少)
效果:
QRadioButton:
from PyQt5 import QtCore
from PyQt5.QtWidgets import QApplication,QWidget
from PyQt5.QtGui import QIcon
import sys
from PyQt5.QtWidgets import QRadioButton
if __name__=="__main__":
app=QApplication(sys.argv)#相当于打开界面(①不能少)
w=QWidget()
w.resize(300,300)
btn1=QRadioButton("男",w)
btn1.setGeometry(10,0,30,30)#按钮存放的位置,在(20,20)位置,宽高为(300,30)
btn2=QRadioButton("女",w)
btn2.setGeometry(40,0,30,30)
w.show()#展示窗口
app.exec_()#程序进行循环等待状态 相当于检测界面(②不能少)
效果:
2、文本——QLabel
from PyQt5.QtWidgets import QApplication,QWidget
from PyQt5.QtWidgets import QLabel
import sys
if __name__=="__main__":
app=QApplication(sys.argv)#相当于打开界面(①不能少)
w=QWidget()#创建界面对象
w.setWindowTitle("第一个标题") #设置窗口标题
#创建文本
#方法一(同上,使用调用方法来指定父类)
label=QLabel("账号:")
label.setParent(w)
#方法二(创建时就指定父类)
label=QLabel("账户:",w)
#设置文本位置与大小
label.setGeometry(20,20,300,30)#在(20,20)位置,宽高为(300,30)
w.show()#展示窗口
app.exec_()#程序进行循环等待状态 相当于检测界面(②不能少)
效果:
注意:
文本位置:是以红色点为原点
3、输入框(文本框)——QLineEdit
from PyQt5.QtWidgets import QApplication,QWidget
from PyQt5.QtWidgets import QLabel
from PyQt5.QtWidgets import QLineEdit
import sys
if __name__=="__main__":
app=QApplication(sys.argv)#相当于打开界面(①不能少)
w=QWidget()#创建界面对象
w.setWindowTitle("第一个标题") #设置窗口标题
#创建文本
label=QLabel("账户:",w)
#设置文本位置与大小
label.setGeometry(20,20,300,30)#在(20,20)位置,宽高为(300,30)
#创建文本框(输入框)
edit=QLineEdit(w)
edit.setPlaceholderText("请输入账号")
edit.setGeometry(55,20,200,20)
#创建按钮
btn=QPushButton("按钮",w)
btn.setGeometry(50,80,70,30)
w.show()#展示窗口
app.exec_()#程序进行循环等待状态 相当于检测界面(②不能少)
效果:
总结&补充:
①设置位置大小:xx.setGeometry(x,y,w,h) #xx为控件对象,(x,y),宽w,高h
②返回位置大小:xx.frameGeometry().getRect() #元组
③去掉标题栏(即窗口标题与图标不显示):from PyQt5 import Qt w.setWindowFlags(Qt.Qt.Customiz