PyQt GUI 编程-01
创始人
2024-04-02 04:40:16
0

文章目录

  • 环境配置
  • 第一个pyqt窗口
  • 组件常用属性
  • 常用操作
  • 信号与槽函数
  • PyQt5 功能模块

环境配置

python 3.6.9
pycharm
pyqt5

  1. 配置pip 安装包的国内镜像
    在这里插入图片描述
# 配置pip 的源镜像
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/# 安装依赖包, 不再需要使用-i指定镜像地址
pip install xxx 

也可以配置pycharm,然后从pycharm安装依赖工具。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
直接搜索安装
pyqt5
pyqt5-tools
pyqt5designer 设计器
安装好后,需要配置设计器的路径:

  1. 找到designer.exe的路径 D:\Anaconda3\Lib\site-packages\QtDesigner\designer.exe

  2. 配置
    在这里插入图片描述
    工作目录必须为$ProjectFileDir$

  3. 在pycharm》 tools》 External tool》 Qt Designer
    也可以在文件上右键
    在这里插入图片描述

  4. 点击“创建”, 创建第一个应用窗口,并命名,如helloWorld.ui,这种文件python无法识别,需要配置python解释器

  5. settings>tools>external tools> +
    将.ui文件转为python可识别的文件
    python解释器
    参数 -m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py,将xxx.ui转为xxx.py
    $FileDir$
    在这里插入图片描述

  6. 然后找到xx.ui,右键》external tools》PyUic
    即可以将xxx.ui转为python文件

第一个pyqt窗口

  1. 打开pycharm, 点击“tools”>external tools > Qt Designer
    Ctrl + N 新建 并拖入组件对象
    Ctrl + R 预览效果

  2. 保存为HelloWorld.ui

  3. 转为python文件,右键》external tools>PyUic

  4. 编写py文件,使其运行
    在这里插入图片描述

# 创建的对话框  加入如下代码   
if __name__ == '__main__':import sys# 创建一个app实例,并传入系统参数,用于退出app = QtWidgets.QApplication(sys.argv)# 创建一个对话框,要放入ui对象中dialog = QtWidgets.QDialog()# 实例化一个ui对象ui = Ui_Dialog()# 设置ui界面的主窗口ui.setupUi(dialog)# 主窗口显示dialog.show()# 退出sys.exit(app.exec_())

创建的主窗口,则添加如下代码:
在这里插入图片描述

# 将xxx.ui转为xxx.py   然后加入如下代码,运行即可
if __name__ == '__main__':import sys# 创建app实例对象app = QtWidgets.QApplication(sys.argv)# 创建主窗口实例对象main_window = QtWidgets.QMainWindow()# 实例化UI对象ui = Ui_MainWindow()ui.setupUi(main_window)# 主窗口展示main_window.show()# 系统退出sys.exit(app.exec_())

组件常用属性

选中一个组件,可以查看其属性:

objectName, 组件的唯一标识,用来调用组件
geometry, 几何尺寸
windowTitle, 主窗口的标题
windowIcon,窗口图标, win+r 预览
在这里插入图片描述
windowOpacity, 不透明度 0-1
windowModality,窗口样式
enable, 窗口是否可用
mininumSize 最小化
maxinumSize 最大化
palette 背景色
cursor 鼠标样式
font 设置字体
在这里插入图片描述

常用操作

  1. 设置icon图标
# 实例化icon
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap("xxx/dog.jpg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
# 设置到主窗口中
MainWindow.setWindowIcon(icon)
  1. 设置背景色
# 方案1  css样式   选择objectName
MainWindow.setStyleSheet("#MainWindow{background-color: lightblue}")# 方案2 调色板
from PyQt5.QtCore import Qt
palette = QtGui.QPalette()
palette.setColor(QtGui.QPalette.Background, Qt.yellow)
MainWindow.setPalette(palette)
  1. 设置背景图
# 1 单张响应式的背景图
MainWindow.setStyleSheet("#MainWindow123{border-image:url(./static/images/logos/dog.jpg)}")
# 2 多次重叠的背景图
MainWindow.setStyleSheet("#MainWindow123{background-image:url(./static/images/logos/dog.jpg)}")# 图片的重复
MainWindow.setStyleSheet("#MainWindow123{background-image:url(./static/images/logos/dog.jpg);\background-repeat:repeat-x;}")# 3
# 背景图p2 = QtGui.QPalette()p2.setBrush(QtGui.QPalette.Background, QtGui.QBrush(QtGui.QPixmap('./static/images/logos/dog.jpg')))MainWindow.setPalette(p2)
  1. 设置不透明度
MainWindow.setWindowOpacity(0.6)
  1. 设置窗口的样式
# 
MainWindow.setWindowFlags(QtCore.Qt.Dialog)
MainWindow.setWindowFlags(QtCore.Qt.Window)
MainWindow.setWindowFlags(QtCore.Qt.SplashScreen)
  1. 窗口的居中显示
		# 获取屏幕的宽高screen = QtWidgets.QDesktopWidget().geometry()s_width = screen.width()s_height = screen.height()# 设置主窗口的尺寸,实现居中显示# MainWindow.resize(400, 400)  重置窗口大小MainWindow.setGeometry(s_width/2-200, s_height/2-200, 400, 400)

信号与槽函数

在这里插入图片描述
添加一个“控件”,点击“视图”----信号与槽编辑器,如下图:
在这里插入图片描述
在这里插入图片描述

然后Ctrl + R 预览 , 点击 实现关闭效果。
 
练习:实现点击,弹出信息提示框。

	# 信号与槽函数self.pushButton.clicked.connect(self.showMessage)def showMessage(self):QtWidgets.QMessageBox.information(self.MainWindow, "提示", "二狗", QtWidgets.QMessageBox.Yes|QtWidgets.QMessageBox.No, QtWidgets.QMessageBox.Yes)  # 默认选中yes

https://www.bilibili.com/video/BV1vq4y1T7zj?p=7&vd_source=e4affaea5cd2c8a149efd2d8eb43672a pending 17…

PyQt5 功能模块

QtCore 模块包含了非GUI的功能设计。
这个模块被用来实现时间,文件和目录,不同数据类型,流,URL,mime类型,线程和进程。
QtGui 模块包含的类用于窗口化的系统结构,事件处理,2D绘图,基本图形,字体和文本。
QtWidgets 模块包含的类提供了一套UI元素来创建经典桌面风格用户界面。
QtMultimedia 模块包含的类用于处理多媒体内容和链接摄像头和无线电功能的API。
QtBluetooth 模块包含的类用于扫描蓝牙设备,并且和他们建立连接互动。
QtNetwork 模块包含的类用于网络编程,这些类使TCP/IP和UDP客户端/服务端编程更加容易和轻便。
QtPositioning 模块包含的类用于多种可获得资源的位置限定,包含卫星定位,Wi-Fi,或一个文本文件。
Enginio 模块用于解决客户端访问Qt云服务托管。
QtWebSockets 模块包含的类用于解决WebSocket通信协议。
QtWebKit 包含的关于浏览器的类用于解决基于WebKit2的支持库。
QtWebKitWidgets 模块包含的关于WebKit1的类基本解决浏览器使用基于QtWidgets应用问题。
QtXml 模块包含的类用于解析XML文件。这个模块提供SAX和DOM API解决方法。
QtSvg 模块提供类用于显示SVG文件内容。Scalable Vector Graphics (SVG) 是一种语言,
用XML来描述二维图形和图形应用程序。
QtSql模块提供类驱动数据库工作。
QtTest 模块包含了方法提供PyQt5应用的单元测试

相关内容

热门资讯

银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...