PyQt学习笔记
一.PyQt5的安装
当我们安装好开发环境后,打开pycharm在其设置里面点击按钮自动安装即可。
安装完成后我们会在这里面看到这几个东西说明安装成功了。
二.PyQt5 GUI程序框架
1.简单的PyQt5应用程序
首先,我们用pycharm创建一个demo.py的文件。
创建文件为simprg.py
简单的窗口应用程序
##文件simprg.py ##使用pyqt5创建一个简单的Gui程序 from PyQt5.QtWidgets import QMainWindow,QApplication from PyQt5.QtGui import QFont from PyQt5.QtCore import Qt import sys#创建窗口类 继承 class MyWin(QMainWindow):def __init__(self):super().__init__()passif __name__ == '__main__':# 窗口展示的固定写法# 创建一个puqt应用程序app = QApplication([])# 创建窗口对象win = MyWin()# 让窗口显示出来win.show()# 设置窗口关闭后,python程序结束sys.exit(app.exec()) |
输出结果:
QtWidgets 界面组件对象
QtGui 与界面相关属性设置的类
QtCore 保存的是界面设置的常用参数
注意:pyqt中只有 QMainWindow这个可以添加菜单栏
2.设置窗口属性
创建完窗口后需要规定窗口的大小,位置,标题等属性。接下来我们对窗口进行属性修饰。
from PyQt5.QtWidgets import QMainWindow,QApplication from PyQt5.QtGui import QFont from PyQt5.QtCore import Qt import sys#创建窗口类 继承 class MyWin(QMainWindow):def __init__(self):super().__init__() #设置窗口大小#self.resize(500,500) #移动位置#self.move(0,0) #设置固定大小self.setFixedSize(500,500) #设置标题self.setWindowTitle("abc")if __name__ == '__main__':# 窗口展示的固定写法# 创建一个puqt应用程序app = QApplication([])# 创建窗口对象win = MyWin()# 让窗口显示出来win.show()# 设置窗口关闭后,python程序结束sys.exit(app.exec()) |
输出结果:
三.Pyqt5常用的界面组件
1.标签组件 QLabel
from PyQt5.QtWidgets import QMainWindow, QApplication, QLabel from PyQt5.QtGui import QFont from PyQt5.QtCore import Qt import sys#创建窗口类 继承 class MyWin(QMainWindow):def __init__(self):super().__init__()#设置窗口大小#self.resize(500,500)#移动位置#self.move(0,0)#设置固定大小self.setFixedSize(500,500)#设置标题self.setWindowTitle("abc") # 添加标签 在标签中承载字符串,需要传父级容器代表当前组件在父级中lab=QLabel(self)lab.setText("hellow") #设置字体lab.setFont(QFont("consolas",30,weight=QFont.Bold)) #设置标签的大小#lab.resize(self.width(),40) #位置和大小一起设置 x y w hlab.setGeometry(0,30,self.width(),40) #设置标签文本居中lab.setAlignment((Qt.AlignCenter))if __name__ == '__main__':# 窗口展示的固定写法# 创建一个puqt应用程序app = QApplication([])# 创建窗口对象win = MyWin()# 让窗口显示出来win.show()# 设置窗口关闭后,python程序结束sys.exit(app.exec()) |
输出结果:
QFont类用于表示字体,并允许你设置字体的各种属性,如字体类型,大小,粗细。
2. 文本域 QTextEdit
from PyQt5.QtWidgets import QMainWindow, QApplication, QLabel, QTextEdit from PyQt5.QtGui import QFont from PyQt5.QtCore import Qt import sys#创建窗口类 继承 class MyWin(QMainWindow):def __init__(self):super().__init__()#设置窗口大小#self.resize(500,500)#移动位置#self.move(0,0)#设置固定大小self.setFixedSize(500,500)#设置标题self.setWindowTitle("abc")# 添加标签 在标签中承载字符串,需要传父级容器代表当前组件在父级中lab=QLabel(self)lab.setText("hellow")#设置字体lab.setFont(QFont("consolas",30,weight=QFont.Bold))#设置标签的大小#lab.resize(self.width(),40)#位置和大小一起设置 x y w hlab.setGeometry(0,30,self.width(),40)#设置标签文本居中lab.setAlignment((Qt.AlignCenter)) #组件在别的地方要调用前面就要加self,反之则不需要加self.area = QTextEdit(self)self.area.setGeometry(40,80,300,200)self.area.setFont(QFont("consolas",15))#字体类型及大小#设置不自动换行self.area.setLineWrapMode(QTextEdit.NoWrap) #接下来是两种拼接方法 #覆盖:将字符串拼接好 \n直接设置进去self.area.setPlainText("你好")self.area.setPlainText("张三")#这里的张三将上面的你好给覆盖掉了 #追加:自动加入换行符self.area.append("李四")self.area.append("王五")self.area.append("麻子")if __name__ == '__main__':# 窗口展示的固定写法# 创建一个puqt应用程序app = QApplication([])# 创建窗口对象win = MyWin()# 让窗口显示出来win.show()# 设置窗口关闭后,python程序结束sys.exit(app.exec()) |
输出结果:
将上面的初始文字改成只读模式。
from PyQt5.QtWidgets import QMainWindow, QApplication, QLabel, QTextEdit from PyQt5.QtGui import QFont from PyQt5.QtCore import Qt import sys#创建窗口类 继承 class MyWin(QMainWindow):def __init__(self):super().__init__()#设置窗口大小#self.resize(500,500)#移动位置#self.move(0,0)#设置固定大小self.setFixedSize(500,500)#设置标题self.setWindowTitle("abc")# 添加标签 在标签中承载字符串,需要传父级容器代表当前组件在父级中lab=QLabel(self)lab.setText("hellow")#设置字体lab.setFont(QFont("consolas",30,weight=QFont.Bold))#设置标签的大小#lab.resize(self.width(),40)#位置和大小一起设置 x y w hlab.setGeometry(0,30,self.width(),40)#设置标签文本居中lab.setAlignment((Qt.AlignCenter))#组件在别的地方要调用前面就要加self,反之则不需要加。self.area = QTextEdit(self)self.area.setGeometry(40,80,300,200)self.area.setFont(QFont("consolas",15))#字体类型及大小#设置不自动换行self.area.setLineWrapMode(QTextEdit.NoWrap)#接下来是两种拼接方法#覆盖:将字符串拼接好 \n直接设置进去self.area.setPlainText("你好")self.area.setPlainText("张三")#这里的张三将上面的你好给覆盖掉了 #游戏排行榜 序号 名字 分数self.area.setPlainText("序号\t名字\t分数") #追加:自动加入换行符self.area.append("1\t张三\t15000")self.area.append("2\t李四\t12000")self.area.append("3\t王五\t9000")#设置只读self.area.setReadOnly(True)#括号里面为True表示只读,里面为False表示可写if __name__ == '__main__':# 窗口展示的固定写法# 创建一个puqt应用程序app = QApplication([])# 创建窗口对象win = MyWin()# 让窗口显示出来win.show()# 设置窗口关闭后,python程序结束sys.exit(app.exec()) |
输出结果: