本文根据近期的学习 对PyQt5的语法使用进行总结
1.窗体的相关设置
self.setWindowTitle("xxx") #设置窗体名称
self.resize(630,480) #设置窗体尺寸 setFixedSize设置不可拉伸的尺寸
self.setWindowIcon(QIcon("./img/comic.png")) #设置窗体左上角的Logo
2.背景的设置
from PyQt5.QtGui import QIcon, QPalette, QBrush, QPixmap
palatte=QPalette() #先把QPalette导进来
palatte.setBrush(self.backgroundRole(),QBrush(QPixmap("./img/background.jpg")))
self.setPalette(palatte)
3. 添加按钮
self.openPicbtn=QPushButton("打开图片",self) #第一个参数设置按钮显示的名称
self.openPicbtn.setGeometry(40,130,200,30)#四个参数(x,y,width,height)
4.添加标签
self.labPic = QLabel("", self) #可以在这里写入要显示的内容
self.labPic.setGeometry(10, 100, 280, 400)
# 为标签设置背景图片
self.labPic.setPixmap(QPixmap("img/background.jpg").scaled(self.labPic.size())) #.scaled 根据标签的大小去调整图片的显示
5.编辑框
self.lineEditL = QLineEdit("", self)
self.lineEditL.setGeometry(10, 520, 280, 30)
#设置输入的长度 上限设置为8
self.editName.setMaxLength(8)
#设置密文
self.editpwd.setEchoMode(QLineEdit.Password)
#得到编辑框的输入
name=self.editName.text()
#清空编辑框
self.editpwd2.clear()
#显示内容
self.lineEditDL.setText("脸型:"+str(self.face_shape)) #注意这里要先强制类型转化成string
6.信号与槽
#信号和槽 为按钮添加相应的处理函数
self.openBtn.clicked.connect(self.openPic)
def openPic(self): #添加相应的槽函数来响应按钮
pass
7.打开图片操作
#返回图片的路径和图片类型
self.imgPath,img_type=QFileDialog.getOpenFileName(self,"选择文件","","*.png;*.jpg;*.jpeg;;")
#self.imgPath是图片的路径 填进Lab中 在Lab中按照尺寸调整大小并显示
self.labPic.setPixmap(QPixmap(self.imgPath).scaled(self.labPic.size())) # self.labPic.size()根据标签的大小去调整图片的显示
self.capPic.setPixmap(QPixmap(self.imgPath).scaled(self.capPic.size())) # self.labPic.size()根据标签的大小去调整图片的显示
8.关闭窗口并显示另一个界面
#在父类中关掉当前窗口并打开子类窗口 创建子类窗口的对象并传参
def closewin(self):
self.close()
self.login=loginWidget(self) #创建对象 把LoginWin.py文件导进来 点击按钮实现界面的跳转
self.login.show()
#这里需要留意一下loginWidget的构造函数 需要把父类作为参数传进来
class loginWidget(QWidget):
def __init__(self,parent):
# 构造函数
super().__init__() #调用父类的构造函数
self.parent=parent #parent存的是 MainWin
#在子类中关掉当前窗口并打开父类窗口 需要调用父类的show函数
def closeWindow(self):
self.close() # 或者用self.hide()隐藏掉
self.parent.show()
9.主函数
if __name__ == '__main__':
app=QApplication(sys.argv) #应用程序
MainWindow=MainWin() #创建一个登陆窗口
MainWindow.show() #显示窗口
sys.exit(app.exec_())
10.消息框
QMessageBox.about(self, "提示框", "按q进行图片截取")