Python打发无聊时光:5.用PyQt实现简陋的用户交互界面

第一步:安装PyQt5库

在终端输入:

pip install pyqt5

第二步:复制下列代码

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QHBoxLayout, QLabel, QLineEdit, QPushButton
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QFontclass InputWindow(QWidget):def __init__(self):super().__init__()self.name_input = QLineEdit()self.age_input = QLineEdit()self.weight_input = QLineEdit()self.heart_rate_input = QLineEdit()self.respiration_rate_input = QLineEdit()self.init_ui()def init_ui(self):self.setWindowTitle('输入用户数据')self.setGeometry(100, 100, 280, 170)  # x, y, width, heightlayout = QVBoxLayout()# 设置整体字体font = QFont('Arial', 10)self.setFont(font)layout.addLayout(self.create_input("姓名:", self.name_input))layout.addLayout(self.create_input("年龄:", self.age_input))layout.addLayout(self.create_input("体重 (kg):", self.weight_input))layout.addLayout(self.create_input("心率 (bpm):", self.heart_rate_input))layout.addLayout(self.create_input("呼吸频率:", self.respiration_rate_input))submit_button = QPushButton("提交")submit_button.clicked.connect(self.submit_data)# 设置按钮样式submit_button.setFont(QFont('Arial', 10, QFont.Bold))submit_button.setStyleSheet("QPushButton { background-color: #4CAF50; color: white; }""QPushButton:pressed { background-color: #66BB6A; }")layout.addWidget(submit_button)self.setLayout(layout)# 设置窗口样式self.setStyleSheet("QWidget { background-color: #EEE; }""QLabel { color: #333; }""QLineEdit { background-color: #FFF; border: 1px solid #CCC; border-radius: 5px; padding: 5px; }")def create_input(self, label_text, line_edit):layout = QHBoxLayout()label = QLabel(label_text)label.setAlignment(Qt.AlignRight | Qt.AlignVCenter)layout.addWidget(label)layout.addWidget(line_edit)return layoutdef submit_data(self):name = self.name_input.text()age = self.age_input.text()weight = self.weight_input.text()heart_rate = self.heart_rate_input.text()respiration_rate = self.respiration_rate_input.text()self.output_window = OutputWindow(name, age, weight, heart_rate, respiration_rate)self.output_window.show()class OutputWindow(QWidget):def __init__(self, name, age, weight, heart_rate, respiration_rate):super().__init__()self.name = nameself.age = ageself.weight = weightself.heart_rate = heart_rateself.respiration_rate = respiration_rateself.init_ui()def init_ui(self):self.setWindowTitle('显示用户数据')self.setGeometry(100, 100, 320, 200)  # x, y, width, heightlayout = QVBoxLayout()font = QFont('Arial', 16, QFont.Bold)name_label = QLabel(f"姓名: {self.name}")age_label = QLabel(f"年龄: {self.age}")weight_label = QLabel(f"体重: {self.weight} kg")heart_rate_label = QLabel(f"心率: {self.heart_rate} bpm")respiration_rate_label = QLabel(f"呼吸频率: {self.respiration_rate}")name_label.setFont(font)age_label.setFont(font)weight_label.setFont(font)heart_rate_label.setFont(font)respiration_rate_label.setFont(font)layout.addWidget(name_label)layout.addWidget(age_label)layout.addWidget(weight_label)layout.addWidget(heart_rate_label)layout.addWidget(respiration_rate_label)self.setLayout(layout)self.setStyleSheet("QWidget { background-color: #FAFAFA; } QLabel { margin: 10px; }")if __name__ == '__main__':app = QApplication(sys.argv)ex = InputWindow()ex.show()sys.exit(app.exec_())

第三步:运行代码,输入信息,显示结果

运行代码后会弹出“用户数据输入”窗口:

输入数据后点击“提交”,接着会弹出“显示用户数据”界面:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/478950.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【ArcGIS Pro二次开发】(82):玩个花活_控规指标块生成

一、要实现的效果 废话不多说,这次要实现的是类似控规指标块的标注: 这里只是示例,用了5个格子,做成9个格子也是可以的。 实现这个效果最关键的是要用到Pro中的复合标注。 关于复合标注的用法可以搜一下帮助里的【使用复合注释…

泰尔指数、城乡收入差距1990-2022年(原始数据+测算数据集)

参考龙海明(2015)、程名望(2019)的做法,本文采用泰尔指数测算城乡收入差距。也采用陈斌开、林毅夫(2013)的做法,用城镇居民人均可支配收入除以农村居民人均纯收入来衡量城乡收入差距…

MCAL知识点(二十七):TC275如何通过GPT12实现ABZ解码

目录 1、概述 2、代码实现 1、概述 GPT12 - General Purpose Timer Unit (GPT12):通用定时器单元,具备较为灵活的定时器结构,可以用来做定时器、事件计数、脉冲宽度测量、产生PWM、频率调制、ABZ编码器增量测量。文章记录一下如何通过GPT12实现编码器ABZ信号的测量。 注意…

unity学习(15)——服务器组装(1)

1.新建好的c#项目如下: 文件夹中内容如下: 此时已经可以通过vs2022打开.sln文件,就可以打开项目了。 2.我们把逆向后(主程序)的内容的代码粘贴过去。有些逆向功底,很快可以定位到,服务器的入口…

二维码钓鱼激增587%:用户陷入社交诈骗陷阱!

Check Point软件技术公司发布的新研究揭示了典型的QR码攻击,通过Check Point的实时网络威胁地图,在两周内发现了2万起QR码钓鱼和恶意软件攻击事件,突显了QR码在网络犯罪分子面前的脆弱性。 QR码是"Quick Response Code"&#xff08…

sensitive-word v0.13 特性版本发布 支持英文单词全词匹配

拓展阅读 sensitive-word-admin v1.3.0 发布 如何支持分布式部署? sensitive-word-admin 敏感词控台 v1.2.0 版本开源 sensitive-word 基于 DFA 算法实现的高性能敏感词工具介绍 更多技术交流 业务背景 对于英文单词 Disburse 之类的,其中的 sb 字母会被…

CDC 整合方案:MySQL > Flink CDC > Kafka > Hudi

博主历时三年精心创作的《大数据平台架构与原型实现:数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行,点击《重磅推荐:建大数据平台太难了!给我发个工程原型吧!》了解图书详情,…

【数据结构】每天五分钟,快速入门数据结构(一)——数组

目录 一.初始化语法 二.特点 三.数组中的元素默认值 四.时间复杂度 五.Java中的ArrayList类 可变长度数组 1 使用 2 注意事项 3 实现原理 4 ArrayList源码 5 ArrayList方法 一.初始化语法 // 数组动态初始化(先定义数组,指定数组长度&#xf…

移动通信相关知识学习笔记

一、移动通信架构简图 移动无线的接入网是专指各种基站设备。核心网就是各种交换机。 二、无线信号基本原理 无线网络中,使用AP设备和天线来实现有线和无线信号互相转换。如上图所示,有线网络侧的数据从AP设备的有线接口进入AP后,经AP处理为…

电子邮件是什么意思?电子邮箱有什么作用?

电子邮件的定义是什么?怎么申请电子邮箱比较好? 伴随着科技的飞速发展,逐渐渗透到我们的工作、学习和生活中。那么,电子邮件到底是什么意思呢?它又是如何影响我们的日常生活的呢?接下来,就让蜂…

C# CAD交互界面-自定义面板集-comboBox选择图层

运行环境Visual Studio 2022 c# cad2016 一、代码说明 SelectLayer方法是一个自定义的AutoCAD命令方法,通过[CommandMethod("SelectLayer")]进行标记。方法首先获取当前活动文档,并检查是否有效。创建一个名为"SelectLayer"的Pale…

即时设计好用吗?怎么用?

进行 UI 设计,除了选择合适的工具,如果能提前掌握一些软件的使用技巧,提高每一步的操作效率,积累起来也能提高整体设计效率。所以这篇文章想给大家介绍一下国内高效的在线设计工具。 即时设计,让你的 UI 设计效率快到飞…