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

Python图形化界面——pyqt5教程

PyQt5 从入门到实战:构建你的第一个桌面应用

1. 环境搭建与安装

使用pip包管理器可以轻松完成PyQt5的安装。

基本安装

在命令行中执行以下命令安装核心库:

pip install PyQt5 -i https://pypi.tuna.tsinghua.edu.cn/simple

安装开发者工具

为了使用可视化界面设计工具,建议安装pyqt5-tools包:

pip install PyQt5-tools -i https://pypi.tuna.tsinghua.edu.cn/simple

配置Qt Designer

在pycharm中找到外部工具

程序为python安装路径下site-packages的中qt5_applications\Qt\bin\designer.exe文件

配置PyUIC

程序为python的位置

实参为-m PyQt5.uic.pyuic  $FileName$ -o $FileNameWithoutExtension$.py

配置Pyrcc

程序为python的位置

实参为$FileName$ -o $FileNameWithoutExtension$_rc.py

验证安装

运行以下代码验证PyQt5是否安装成功:

import sys
from PyQt5.QtWidgets import QApplication, QWidgetapp = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle('我的第一个PyQt5应用')
window.resize(400, 300)
window.show()
sys.exit(app.exec_())

如果出现空白窗口,则表示环境配置成功。

2. PyQt5 核心概念

2.1 应用程序架构

PyQt5应用的基本结构包含三个主要部分:

  1. QApplication:管理应用程序的控制流和主要设置(每个应用只需一个实例)
  2. 窗口部件:所有用户界面元素的基类,如按钮、标签等
  3. 事件循环:通过app.exec_()启动,用于处理用户交互

2.2 信号与槽机制

这是PyQt5处理事件的核心机制:

  • 信号:由事件触发(如按钮点击)
  • :响应信号的函数

示例代码:

from PyQt5.QtWidgets import QApplication, QPushButtondef button_clicked():print("按钮被点击了!")app = QApplication([])
button = QPushButton('点击我')
button.clicked.connect(button_clicked)  # 连接信号与槽
button.show()
app.exec_()

3. 使用Qt Designer进行可视化设计

3.1 启动Qt Designer

安装PyQt5-tools后,可通过命令行启动:

designer

或者通过使用外部工具的方法中的QtDesinger打开

点击创建就建立一个窗口

通过拖动左侧的widhet box下的控件为窗口添加内容,点击保存可以将内容保存为.ui的文件

3.2转换UI文件为Python代码

将设计好的.ui文件转换为Python代码:

pyuic5 input.ui -o output.py

或者右击ui文件使用外部工具PyUIC转化

4. 常用控件详解

控件名称类名功能描述常用方法/信号
标签QLabel显示文本或图像setText(), setPixmap()
按钮QPushButton触发操作clicked信号
单行文本框QLineEdit输入单行文本text(), textChanged信号
多行文本框QTextEdit输入和显示多行文本toPlainText(), setText()
复选框QCheckBox多选选项isChecked(), stateChanged信号
单选按钮QRadioButton单选选项(需分组)使用QButtonGroup管理
下拉框QComboBox下拉选择addItem(), currentTextChanged信号
滑块QSlider通过滑动选择数值setRange(), valueChanged信号

控件使用示例

import sys
from PyQt5.QtWidgets import (QApplication, QWidget, QVBoxLayout, QHBoxLayout, QLabel, QPushButton, QLineEdit, QCheckBox)class Example(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):vbox = QVBoxLayout()# 用户名输入区域label = QLabel('用户名:')self.input = QLineEdit()hbox1 = QHBoxLayout()hbox1.addWidget(label)hbox1.addWidget(self.input)# 复选框self.checkbox = QCheckBox('记住我')# 按钮btn = QPushButton('确定')btn.clicked.connect(self.onButtonClick)# 添加所有控件vbox.addLayout(hbox1)vbox.addWidget(self.checkbox)vbox.addWidget(btn)self.setLayout(vbox)self.setWindowTitle('控件示例')self.resize(300, 150)def onButtonClick(self):username = self.input.text()remember = self.checkbox.isChecked()print(f'用户名: {username}, 记住我: {remember}')if __name__ == '__main__':app = QApplication(sys.argv)ex = Example()ex.show()sys.exit(app.exec_())

http://www.dtcms.com/a/504095.html

相关文章:

  • 人和兽做的网站视频学动漫设计去哪个学校
  • 东莞响应式网站建设定制石家庄造价工程信息网
  • 榆林网站建设公司12306的网站是哪个公司做的
  • PCIe协议之 Equalization篇 之 如何重新发起 EQ?
  • 贵阳网站建设我国网络营销现状分析
  • FPGA的时钟输入和JESD204B 接口对时钟的要求
  • 佛山多语网站制作公司网站官网
  • 企业官网的应用场景视频网站seo怎么做
  • 济南企业建设网站网页制作好了如果让别人搜到
  • Java零基础入门:面向对象讲解 --- OOP(上)
  • python | requests爬虫如何正确获取网页编码?
  • C语言对单链表的操作
  • DeepLab系列算法介绍
  • apache设置网站网址怎样将ftp转换为wordpress
  • .net和php哪个做网站好红色简约的手机社区类网站html5响应式模板下载
  • 民兵信息化网站建设wordpress页面添加照片
  • Docker 安装 CentOS
  • 做黑彩票的网站赚钱吗微信公众号怎么做好看
  • 内蒙古集宁建设厅官方网站国外app设计网站
  • C++ vector类的使用
  • 咸阳建设局网站自己公司怎样弄个网站
  • 网站做推广需要什么条件免费制作招聘的app
  • 临沂市建设安全管理网站nginx 搭建wordpress
  • 管理有限公司网站设计中文企业网站html模板
  • 网站的搜索功能怎么做网站建设实训报告模板
  • Redis集群架构详解:从单机到分布式的扩展之路
  • Csrf4
  • mysql数据库、iptables、Ivs服务和keepalived服务
  • html全屏网站东莞网站推广的公司
  • 人才共享网站的建设方案怎么写做网站要固定ip