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

Python-pyqt不同窗口数据传输【使用静态函数】

文章目录

  • 前言
    • 程序1:caogao1.py输入数据界面
    • 程序2:caogao2.py接收数据界面
  • 程序3 :将输入数据界面和接收数据界面组合成一个总界面
    • 讲解
  • 总结


前言

在编写pyqt 页面时有时候需要不同页面进行数据传输。本文讲解静态函数方法。直接看示例。

程序1:caogao1.py输入数据界面

import sys
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
import os #自带
from PyQt5 import QtCore, QtWidgetsclass Ui_Dialog11(object):def stack11UI(self):#第一部分 加载数据集self.lb1 = QLabel("输入数据窗口")self.lb1.setAlignment(Qt.AlignHCenter)self.textEdit1 = QTextEdit("输入数据:")layout1= QtWidgets.QHBoxLayout()layout1.addWidget(self.lb1)layout1.addWidget(self.textEdit1)self.stack11.setLayout(layout1)@staticmethod  # 静态方法 ,其它窗口调用def TransmitResults(self):return str(self.textEdit1.toPlainText())

程序2:caogao2.py接收数据界面

import sys
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
import os #自带
from PyQt5 import QtCore, QtWidgets
from caogao1 import Ui_Dialog11 #导入caogao1.py中的Ui_Dialog11
class Ui_Dialog12(object):def stack12UI(self):#第一部分 加载数据集self.lb2 = QLabel("接收数据窗口")self.lb2.setAlignment(Qt.AlignHCenter)self.btn2 = QPushButton("点击接收数据")self.btn2.clicked.connect(self.GetResults)self.textEdit2 = QTextEdit("接收数据:")layout2= QtWidgets.QVBoxLayout()layout2.addWidget(self.lb2)layout2.addWidget(self.btn2)layout2.addWidget(self.textEdit2)self.stack12.setLayout(layout2)def GetResults(self):try:jieguo=Ui_Dialog11.TransmitResults(self) #调用Ui_Dialog11.TransmitResults 静态方法self.textEdit2.setText(str(jieguo)) #写入except Exception as e1:self.textEdit2.setText(str(e1))  # 写入

程序3 :将输入数据界面和接收数据界面组合成一个总界面

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @Author: yudengwu(余登武)
# @Date  : 2023/8/27
#@email:1344732766@qq.com
import sys
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
import os #自带
from PyQt5 import QtCore, QtWidgets, QtGui
from caogao1 import Ui_Dialog11 #导入
from caogao2 import Ui_Dialog12#导入class StackedExample(QWidget,Ui_Dialog11,Ui_Dialog12):def __init__(self):super(StackedExample, self).__init__()#设置窗口初始位置和大小self.setGeometry(300,50,100,100)screen = QDesktopWidget().screenGeometry()  # 屏膜self.setMinimumSize(screen.width() * 0.7, screen.height() * 0.7)self.setMaximumSize(screen.width() * 0.9, screen.height() * 0.9)MAIN_SIZE_MAX = QSize(16777215, 16777215);self.setMaximumSize(MAIN_SIZE_MAX);self.setWindowFlag(QtCore.Qt.WindowMaximizeButtonHint, True)#self.setWindowFlags(QtCore.Qt.WindowMinMaxButtonsHint|QtCore.Qt.WindowCloseButtonHint)self.setWindowTitle('总页面')# 创建列表窗口,添加条目self.leftlist = QListWidget()self.leftlist.insertItem(0, '输入数据界面')self.leftlist.insertItem(1, '接收数据页面')# 创建二个小控件self.stack11 = QWidget() #stack11 和Ui_Dialog11中保持一致self.stack12 = QWidget()#stack12 和Ui_Dialog12中保持一致self.stack11UI() #初始化self.stack12UI()#初始化# 在QStackedWidget对象中填充了二个子控件self.stack = QStackedWidget(self)self.stack.addWidget(self.stack11)self.stack.addWidget(self.stack12)# 水平布局,添加部件到布局中HBox = QHBoxLayout()HBox.addWidget(self.leftlist, 1)HBox.addWidget(self.stack, 5)self.setLayout(HBox)self.leftlist.currentRowChanged.connect(self.display)def display(self, i):# 设置当前可见的选项卡的索引self.stack.setCurrentIndex(i)if __name__ == '__main__':app=QApplication(sys.argv)demo=StackedExample()demo.show()sys.exit(app.exec_())

讲解

输入数据界面

接收数据界面

在输入数据界面 输入值

在接收数据界面 点击接收,可以发现数据从一个界面传到另一个界面了。

总结

1、将函数变成静态函数方法@staticmethod

   @staticmethod  # 静态方法 ,其它窗口调用def 函数名(self):return 结果

2、其它窗口通过静态函数所在类名.静态函数(self) 得到传递值

相关文章:

Python-pyqt不同窗口数据传输【使用静态函数】

文章目录 前言程序1:caogao1.py输入数据界面程序2:caogao2.py接收数据界面 程序3 :将输入数据界面和接收数据界面组合成一个总界面讲解 总结 前言 在编写pyqt 页面时有时候需要不同页面进行数据传输。本文讲解静态函数方法。直接看示例。 程…...

百度垂类离线计算系统发展历程

作者 | 弘远君 导读 本文以百度垂类离线计算系统的演进方向为主线,详细描述搜索垂类离线计算系统发展过程中遇到的问题,以及对应的解决方案。架构演进过程中一直奉行“没有最好的架构,只有最合适的架构”的宗旨,面对不同阶段遇到的…...

ubuntu 安装 指定版本:nodejs

通过 PPA 安装指定或最新版本的 nodejs 那么就需要使用 nodesource 来安装指定版本的 nodejs 了。其需要下载一个脚本,运行此脚本会在 ubuntu 里添加一个 nodejs 源,然后用 apt 就可以下载指定的 nodejs 了。 PPA 的全称为 personal package archive 。要…...

16.CSS菜单悬停特效

效果 源码 <!DOCTYPE html> <html> <head> <title>Creative Menu Item Hover Effects</title> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body><section><…...

恒运资本:市盈率怎么算?

市盈率&#xff08;P/E ratio&#xff09;是判别一家公司股票价格合理性的一个重要目标&#xff0c;也是投资者评估公司股票投资价值的重要参阅目标。市盈率越高&#xff0c;表明相对于公司的收益来说&#xff0c;该公司的股票定价越高。市盈率越低&#xff0c;则表明该股票被低…...

Docker运维中常见错误以及解决方法汇总1

1.报错如下: Another app is currently holding the yum lock; waiting for it to exit... 另一个应用程序是:PackageKit 原因:另一个APP正在锁定yum,等待其退出! 解决:执行指令 rm -f /var/run/yum.pid 2.CentOS7设置静态的IP且可以上网...

Maven - 使用maven-release-plugin规范化版本发布

文章目录 Maven Release plugin – IntroductionMaven Release plugin – Plugin DocumentationMaven Release plugin – Usage实战案例 Maven Release plugin – Introduction Maven Release Plugin&#xff08;Maven 发布插件&#xff09;是一个用于帮助在Maven项目中执行版…...

2023.8.29 关于性能测试

目录 什么是性能测试&#xff1f; 性能测试常见术语及其性能测试衡量指标 并发 用户数 响应时间 事务 点击率 吞吐量 思考时间 资源利用率 性能测试分类 基准性能测试 负载性能测试 压力性能测试 可靠性性能测试 性能测试执行流程 什么是性能测试&#xff1f; 性…...

基于MATLAB的径向基函数插值(RBF插值)(一维、二维、三维)

基于MATLAB的径向基函数插值&#xff08;RBF插值&#xff09;&#xff08;一维、二维、三维&#xff09; 0 前言1 RBF思路2 1维RBF函数2.1 参数说明2.1.1 核函数选择2.1.2 作用半径2.1.3 多项式拟合2.1.4 误差项&#xff08;光滑项&#xff09; 3 2维RBF函数4 3维RBF函数 惯例声…...

flume拦截器

flume拦截器代码 1.依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apach…...

vue、elementui控制前一级选择后,后一级才会有数据

<el-form-item label"废物类型&#xff1a;"><el-select clearable v-model"queryForm.hswCateType" placeholder"请选择" change"industryCategoryChange" focus"industryCategoryFocus"><el-option v-for&…...

亲测influxdb安装为window后台服务

InfluxDB 安装 64bit&#xff1a;https://dl.influxdata.com/influxdb/releases/influxdb-1.7.4_windows_amd64.zip 解压安装包 修改配置文件 [meta]# Where the metadata/raft database is storeddir "D:/influxdb/meta"...[data]# The directory where the TSM…...

【LeetCode - 每日一题】823. 带因子的二叉树 (2023.08.29)

823. 带因子的二叉树 题意 元素都大于1&#xff0c;元素不重复。计数满足要求的二叉树&#xff08;每个非叶结点的值应等于它的两个子结点的值的乘积&#xff09;的数量。元素可以重复使用。 代码 自上而下动态规划。 所有元素大于1&#xff0c;所以不会有 自己自己自己 的…...

flutter 上传图片并裁剪

1.首先在pubspec.yaml文件中新增依赖pub.dev image_picker: ^0.8.75 image_cropper: ^4.0.1 2.在Android的AndroidManifest.xml文件里面添加权限 <activityandroid:name"com.yalantis.ucrop.UCropActivity"android:screenOrientation"portrait"andro…...

一台服务器上部署 Redis 伪集群

哈喽大家好&#xff0c;我是咸鱼 今天这篇文章介绍如何在一台服务器&#xff08;以 CentOS 7.9 为例&#xff09;上通过 redis-trib.rb 工具搭建 Redis cluster &#xff08;三主三从&#xff09; redis-trib.rb 是一个基于 Ruby 编写的脚本&#xff0c;其功能涵盖了创建、管…...

ealtek高清晰音频管理器(realtek高清晰音频管理器怎么设置win10)

本文为大家介绍realtek高清晰音频管理器(realtek高清晰音频管理器怎么设置win10)&#xff0c;下面和小编一起看看详细内容吧。 我们都使用电脑来听音乐、看电影或者进行其他操作&#xff0c;但是如果我们觉得电脑产生的音效不够立体&#xff0c;我们就会想要去Realtek来设置音…...

微信小程序 scroll-view 组件的 bindscroll 不触发不生效

使用微信小程序基础组件中的scroll-view&#xff0c;但是滑动的时候 bindscroll 一直不生效。 <view class"container log-list"><scroll-view scroll-y style"height:100%;white-space:nowrap;" scroll-into-view"{{toView}}" enable…...

datax 删除分区数据,再写入MySQL脚本

#! /bin/bashDATAX_HOME/opt/module/datax#1、判断参数是否传入 if [ $# -lt 1 ] thenecho "必须传入all/表名..."exit fi #2、判断日期是否传入 [ "$2" ] && datestr$2 || datestr$(date -d -1 day %F)#DataX导出路径不允许存在空文件&#xff0c…...

hyperf 十四 国际化

一 安装 composer require hyperf/translation:v2.2.33 二 配置 1、设置语言文件 文件结构&#xff1a; /storage/languages/en/messages.php /storage/languages/zh_CH/messages.php // storage/languages/en/messages.php return [welcome > Welcome to our applicat…...

C语言_初识C语言指针

文章目录 前言一、指针 ... 一个内存单元多大比较合适&#xff1f;二、地址或者编号如何产生&#xff1f;三、指针变量的大小 前言 内存是电脑上特别重要的存储器&#xff0c;计算机中程序的运行都是在内存中进行的。 所以为了有效的使用内存&#xff0c;就把内存划分成一个个…...

AI写论文必备指南!4款AI论文生成工具,让论文写作事半功倍!

写期刊论文是不是让你感到特别困难&#xff1f; 面对大量的文献、繁琐的格式要求&#xff0c;以及不断的修改&#xff0c;许多学术工作者都感到效率低下。别担心&#xff0c;接下来我们将介绍4款实测的AI论文写作工具&#xff0c;它们能够帮助你轻松生成论文。从文献检索、论文…...

高性价比AI编程神器Claude Code+deepseek v4 pro+vscode——详细安装指南(2026最新版)

一.简介 这套组合性价比极高。关于Claude Code&#xff1a;它由Anthropic公司打造&#xff0c;是直接运行在终端中的AI编程助手&#xff0c;让你不用离开命令行就能完成代码生成、调试、重构、甚至Git提交等各种开发任务。本文将带你完成安装与配置。众所周知Claude 模型集强大…...

3个核心优化:让你的华硕笔记本性能翻倍且更省电

3个核心优化&#xff1a;让你的华硕笔记本性能翻倍且更省电 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook, Expertbo…...

Spring Scheduling定时任务:从原理到实战的完整指南

1. 项目概述与核心价值在后台系统开发中&#xff0c;定时任务是一个绕不开的经典需求。无论是每天凌晨的数据报表生成、每隔几分钟的缓存刷新&#xff0c;还是每周一次的日志归档&#xff0c;都需要一个稳定、可靠的任务调度机制。早期&#xff0c;很多开发者会选择自己撸袖子干…...

UnityPackage Extractor终极指南:快速免费提取Unity资源包

UnityPackage Extractor终极指南&#xff1a;快速免费提取Unity资源包 【免费下载链接】unitypackage_extractor Extract a .unitypackage, with or without Python 项目地址: https://gitcode.com/gh_mirrors/un/unitypackage_extractor UnityPackage Extractor是一款简…...

深度解析Clarity AI超分辨率架构:从算法原理到实战优化指南

深度解析Clarity AI超分辨率架构&#xff1a;从算法原理到实战优化指南 【免费下载链接】clarity-upscaler Clarity AI | AI Image Upscaler & Enhancer - free and open-source Magnific Alternative 项目地址: https://gitcode.com/GitHub_Trending/cl/clarity-upscale…...

【Perplexity阅读推荐查询实战指南】:20年AI工具专家亲授5大精准筛选技巧,错过再等一年

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;Perplexity阅读推荐查询的核心价值与适用场景 Perplexity 作为一款基于大语言模型的实时问答与研究工具&#xff0c;其“阅读推荐查询”能力并非简单的内容聚合&#xff0c;而是融合语义理解、来源可信度评估…...

从COCO到自定义:用Labelme为YOLOv8-Pose制作关键点数据集的完整避坑指南

从COCO到自定义&#xff1a;用Labelme为YOLOv8-Pose制作关键点数据集的完整避坑指南 在计算机视觉领域&#xff0c;关键点检测技术正逐渐成为工业界和学术界的热点研究方向。不同于传统的目标检测任务&#xff0c;关键点检测不仅需要定位物体位置&#xff0c;还要精确识别物体内…...

使用TaoTokenCLI工具一键配置多开发环境下的API接入

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 使用TaoTokenCLI工具一键配置多开发环境下的API接入 在团队协作或个人多项目开发中&#xff0c;为每个项目或每台机器手动配置大模…...

在Node.js后端服务中集成Taotoken实现多模型异步调用的教程

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 在Node.js后端服务中集成Taotoken实现多模型异步调用的教程 对于需要在后端服务中调用大语言模型的Node.js开发者而言&#xff0c;…...