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

PyQt5 入门(上):开启 GUI 编程之旅

PyQt5 入门(上):开启 GUI 编程之旅

一、PyQt(上)

1.1 PyQt5 简介和环境搭建

PyQt5 是 Python 语言的 GUI 框架,它将 Qt 库的强大功能与 Python 的简洁易用相结合,让开发者能够高效地创建出美观、交互性强的桌面应用程序,比如各类图形工具、数据管理软件等。

要搭建 PyQt5 开发环境,非常简单。首先确保你的电脑已经安装了 Python 环境,然后打开命令行终端,执行以下命令安装 PyQt5:

pip install PyQt5

如果想要更方便地进行界面设计(比如使用 Qt Designer 工具),还可以安装 PyQt5-tools:

pip install PyQt5-tools

安装完成后,就可以开始 PyQt5 的学习之旅啦。

1.2 第一个 Qt 程序

1.2.1 第一个 Qt 窗口

下面是创建第一个简单 Qt 窗口的代码:

import sys
from PyQt5.QtWidgets import QApplication, QWidget# 创建应用程序对象
app = QApplication(sys.argv)
# 创建窗口对象
window = QWidget()
# 设置窗口标题
window.setWindowTitle('我的第一个 Qt 窗口')
# 设置窗口大小
window.resize(400, 300)
# 显示窗口
window.show()
# 进入应用程序的主循环,等待用户操作
sys.exit(app.exec_())

运行这段代码,会弹出一个标题为“我的第一个 Qt 窗口”,大小为 400x300 的窗口,这就是我们的第一个 Qt 程序窗口啦。

1.2.2 窗口的相关设置

我们可以对窗口进行更多设置,比如设置窗口图标、背景颜色等。以下是示例代码:

import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QIconapp = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle('设置丰富的窗口')
# 设置窗口图标,将 icon.png 替换为你的图标文件路径
window.setWindowIcon(QIcon('icon.png'))
# 设置窗口大小
window.resize(500, 400)
# 使用样式表设置窗口背景颜色为浅蓝色
window.setStyleSheet('background-color: lightblue;')
window.show()
sys.exit(app.exec_())

运行后,窗口会显示指定的图标,背景是浅蓝色,更加个性化。

1.2.3 添加模板代码

在实际开发中,为了让代码结构更清晰,我们可以将窗口相关的代码封装成类。以下是一个简单的模板代码示例:

import sys
from PyQt5.QtWidgets import QApplication, QWidgetclass MyWindow(QWidget):def __init__(self):super().__init__()# 调用初始化界面的方法self.initUI()def initUI(self):self.setWindowTitle('模板窗口')self.resize(600, 500)if __name__ == '__main__':app = QApplication(sys.argv)# 创建自定义窗口对象window = MyWindow()window.show()sys.exit(app.exec_())

这样的结构在开发复杂应用时,更便于维护和扩展。

1.3 常用控件

1.3.1 标签 QLabel

QLabel 主要用于显示文字或图片信息。

  • 1.3.1.1 显示文字
    示例代码:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabelapp = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle('显示文字标签')
window.resize(300, 200)
# 创建标签并设置文字内容
label = QLabel('这是一个显示文字的标签', window)
window.show()
sys.exit(app.exec_())

运行后,窗口中会显示出“这是一个显示文字的标签”这段文字。

  • 1.3.1.2 显示图片
    示例代码:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel
from PyQt5.QtGui import QPixmapapp = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle('显示图片标签')
window.resize(400, 300)
label = QLabel(window)
# 加载图片,将 image.jpg 替换为你的图片文件路径
pixmap = QPixmap('image.jpg')
# 设置图片到标签上
label.setPixmap(pixmap)
window.show()
sys.exit(app.exec_())

运行后,窗口中的标签会显示指定的图片。

1.3.2 输入框

输入框用于接收用户的输入内容,PyQt5 提供了单行输入框和文本输入框。

  • 1.3.2.1 单行输入框 QLineEdit
    示例代码:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLineEdit, QVBoxLayoutapp = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle('单行输入框')
window.resize(300, 150)
layout = QVBoxLayout()
# 创建单行输入框
line_edit = QLineEdit()
# 设置占位提示文字
line_edit.setPlaceholderText('请输入单行内容')
layout.addWidget(line_edit)
window.setLayout(layout)
window.show()
sys.exit(app.exec_())

运行后,可在输入框中输入单行文本,有占位提示文字引导。

  • 1.3.2.2 文本输入框 QTextEdit
    示例代码:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QTextEdit, QVBoxLayoutapp = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle('文本输入框')
window.resize(400, 300)
layout = QVBoxLayout()
# 创建文本输入框
text_edit = QTextEdit()
# 设置占位提示文字
text_edit.setPlaceholderText('请输入多行文本内容')
layout.addWidget(text_edit)
window.setLayout(layout)
window.show()
sys.exit(app.exec_())

运行后,可在输入框中输入多行文本,适合大量文字输入。

1.3.3 按钮 QPushButton

QPushButton 是按钮控件,用户点击按钮可触发相应操作。示例代码:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QMessageBox, QVBoxLayoutapp = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle('按钮示例')
window.resize(300, 200)
layout = QVBoxLayout()
button = QPushButton('点击我')def on_click():# 弹出提示框QMessageBox.information(window, '提示', '按钮被点击了!')# 将按钮的点击信号与槽函数连接
button.clicked.connect(on_click)
layout.addWidget(button)
window.setLayout(layout)
window.show()
sys.exit(app.exec_())

运行后,点击“点击我”按钮,会弹出提示框显示“按钮被点击了!”。

1.4 信号和槽

信号和槽是 PyQt5 中用于对象间通信的机制,当一个对象发出信号时,连接到该信号的槽函数会被调用。

1.4.1 按钮的信号与槽

前面按钮的示例已经用到了信号和槽,button.clicked.connect(on_click) 就是将按钮的 clicked 信号连接到 on_click 槽函数,当按钮被点击时,clicked 信号触发,on_click 函数执行。

1.4.2 系统的信号和槽函数

系统也提供了一些信号,比如窗口的关闭信号。我们可以连接这些信号到自定义的槽函数。示例代码:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QMessageBoxapp = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle('系统信号示例')
window.resize(300, 200)def close_window():reply = QMessageBox.question(window, '确认', '确定要关闭窗口吗?', QMessageBox.Yes | QMessageBox.No, QMessageBox.No)if reply == QMessageBox.Yes:window.close()# 重写窗口的关闭事件处理函数,连接自定义的槽函数逻辑
window.closeEvent = lambda event: close_window()
window.show()
sys.exit(app.exec_())

运行后,当尝试关闭窗口时,会弹出确认框,询问是否确定关闭,根据选择执行相应操作。

http://www.xdnf.cn/news/1480951.html

相关文章:

  • python advance -----object-oriented
  • URI与URL区别:资源ID和地址差异
  • Vue3中Vite的介绍与应用
  • 第1课:开篇:RAG技术与DeepSeek模型全景导读
  • Cloudflare for SaaS 实现 CNAME 接入 CDN 支持国内外智能分流建站
  • AI Agent侵入办公室
  • Android Audio Patch
  • 长尾关键词优化驱动SEO流量增长
  • 链动2+1模式:全渠道整合与用户角色化的商业逻辑与行为动机探析
  • ElasticSearch原理
  • CAN总线学习
  • HarmonyOS:通过组件导航设置信息提醒
  • 贪心算法应用:机器人路径平滑问题详解
  • 9月6日笔记
  • 让机器具有主动性-主动性算法[01]
  • HuggingFace Trainer(回调可视化)
  • 木棉EZ100-Pro 15.5G矿机参数解析:Etchash算法与高效能耗
  • Day27 函数2 装饰器
  • 【Redis】--持久化机制
  • 2025年服装工厂高效管理系统解决方案优选指南
  • 华为悦盒EC6108V9/EC6108V9U/EC6108V9C_MV100(pub普通版/CA高安版)卡刷和强刷固件包
  • 2025年渗透测试面试题总结-55(题目+回答)
  • 为什么ubuntu大文件拷贝会先快后慢?
  • spring事务传播机制
  • 智能驾驶调研
  • 智慧灌区系统:科技赋能,让农田灌溉更智能、更高效、更可持续
  • MySQL数据库精研之旅第十七期:深度拆解事务核心(下)
  • 【营销策略算法】关联规则学习-购物篮分析
  • 淘宝拍立淘按图搜索及淘宝API(JSON数据返回)核心解析
  • Python列表:从入门到灵活运用的全攻略