Python图形化界面——pyqt5教程 - 详解

🌌 365提款多久到账 ⏱️ 2026-07-05 02:03:02 👤 admin 👁️ 7474 ⭐ 994
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, QWidget

app = QApplication(sys.argv)

window = QWidget()

window.setWindowTitle('我的第一个PyQt5应用')

window.resize(400, 300)

window.show()

sys.exit(app.exec_())

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

2. PyQt5 核心概念2.1 应用程序架构PyQt5应用的基本结构包含三个主要部分:

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

信号:由事件触发(如按钮点击)槽:响应信号的函数示例代码:

from PyQt5.QtWidgets import QApplication, QPushButton

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

🛸 相关文章

三星 GALAXY S4
365比分官网

三星 GALAXY S4

📅 10-17 👁️ 7466
龟速宠应用专题讲解及典例欣赏
365提款多久到账

龟速宠应用专题讲解及典例欣赏

📅 07-05 👁️ 7794