当前位置: 首页 > news >正文

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())

输出结果:

3.菜单栏


http://www.mrgr.cn/news/78421.html

相关文章:

  • 前端面试笔试(五)
  • 在使用PCA算法进行数据压缩降维时,如何确定最佳维度是一个关键问题?
  • 全面解析 Map、WeakMap、Set、WeakSet
  • Python的排序算法
  • 开发中使用UML的流程_05 PIM-1:分析系统流程
  • AD20使用操作第三部分
  • (长期更新)《零基础入门 ArcGIS(ArcMap) 》实验二----网络分析(超超超详细!!!)
  • android集成FFmpeg步骤以及常用命令,踩坑经历
  • 【Leetcode 每日一题】743. 网络延迟时间
  • 使用ENSP实现NAT
  • PostgreSQL 三种关库模式
  • CTO 实际上是在做什么?
  • LLamafactory API部署与使用异步方式 API 调用优化大模型推理效率
  • 矩阵重新排列——sort函数
  • 使用ENSP实现默认路由
  • 蓝桥杯c++算法秒杀【6】之动态规划【上】(数字三角形、砝码称重(背包问题)、括号序列、组合数问题:::非常典型的必刷例题!!!)
  • 鸿蒙NEXT元服务:利用App Linking实现无缝跳转与二维码拉起
  • 【Leetcode Top 100】48. 旋转图像
  • 微信小程序按字母顺序渲染城市 功能实现详细讲解
  • ThingsBoard规则链节点:GCP Pub/Sub 节点详解
  • 技术文档的规划布局:构建清晰的知识蓝图
  • 【Leetcode 每日一题】632. 最小区间
  • Springboot整合分布式任务调度平台XXL-Job实现定时任务
  • 更优雅的 yolo v11 标注工具 AutoLabel Conda环境直接识别训练
  • PGSQL学习笔记 -- 从入门到放弃
  • 使用Spring Data MongoDB中的MongoTemplate实现分组查询最新的数据