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

python -- PyQt5(designer)中文详细教程(四)事件和信号

事件

        signals and slots也 被其他⼈翻译成信号和槽机制。

        所有的应用都是事件驱动的。事件大部分都是由用户的行为产⽣的,当然也有其他的事件产生方式,比如网络的连接,窗口管理器或者定时器等。调⽤应⽤的exec_()⽅法时,应⽤会进⼊主循环, 主循环会监听和分发事件。

        在事件模型中,有三个⾓⾊:事件源, 事件, 事件⽬标

        事件源就是发⽣了状态改变的对象。事件是这个对象状态改变的内容。事件目标是事件想作⽤的⽬ 标。事件源绑定事件处理函数,然后作用于事件目标身上。

        PyQt5处理事件方面有个signal and slot机制。Signals and slots⽤于对象间的通讯。事件触发的时 候,发⽣⼀个signal,slot是⽤来被Python调⽤的(相当于⼀个句柄?这个词也好恶⼼,就是相当于 事件的绑定函数)slot只有在事件触发的时候才能调用。

Signals & slots

import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import (QWidget, QLCDNumber, QSlider,QVBoxLayout, QApplication)class Example(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):lcd = QLCDNumber(self)sld = QSlider(Qt.Horizontal, self)vbox = QVBoxLayout()vbox.addWidget(lcd)vbox.addWidget(sld)self.setLayout(vbox)sld.valueChanged.connect(lcd.display)self.setGeometry(300, 300, 350, 250)self.setWindowTitle('Signal and slot')self.show()if __name__ == '__main__':app = QApplication(sys.argv)ex = Example()sys.exit(app.exec_())

上⾯的例子中,显示了 QtGui.QLCDNumber 和 QtGui.QSlider 模块,我们能拖动滑块让数字跟着发生改变。

        sld.valueChanged.connect(lcd.display)

这⾥是把滑块的变化和数字的变化绑定在⼀起。

sender 是信号的发送者, receiver 是信号的接收者, slot 是对这个信号应该做出的反应。

程序展⽰:

 

 

重构事件处理器 

在PyQt5中,事件处理器经常被重写(也就是用自己的覆盖库自带的)。

import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QWidget, QApplicationclass Example(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):self.setGeometry(300, 300, 350, 150)self.setWindowTitle('Event handler')self.show()def keyPressEvent(self, e):  # 键盘按下事件if e.key() == Qt.Key_Escape:  # 按下ESC键self.close()if __name__ == '__main__':app = QApplication(sys.argv)ex = Example()sys.exit(app.exec_())

 这个例⼦中,我们替换了事件处理器函数 keyPressEvent() 。

def keyPressEvent(self, e):  # 键盘按下事件
        if e.key() == Qt.Key_Escape:  # 按下ESC键
            self.close()

此时如果按下ESC键程序就会退出。

程序展示:

 

事件对象

事件对象是⽤python来描述⼀系列的事件自身属性的对象。

import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QWidget, QApplication, QGridLayout, QLabelclass Example(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):grid = QGridLayout()grid.setSpacing(10)x = 0y = 0self.text = "x: {0}, y: {1}".format(x, y)self.label = QLabel(self.text, self)grid.addWidget(self.label, 0, 0, Qt.AlignTop) # Qt.AlignTop 居顶self.setMouseTracking(True)self.setLayout(grid)self.setGeometry(300, 300, 350, 200)self.setWindowTitle('Event object')self.show()def mouseMoveEvent(self, e):x = e.x()y = e.y()text = "x: {0}, y: {1}".format(x, y)self.label.setText(text)if __name__ == '__main__':app = QApplication(sys.argv)ex = Example()sys.exit(app.exec_())

这个⽰例中,我们在⼀个组件⾥显示鼠标的X和Y坐标。

        self.text = "x: {0}, y: {1}".format(x, y)
        self.label = QLabel(self.text, self)

X Y坐标显⽰在 QLabel 组件⾥

        self.setMouseTracking(True)

事件追踪默认没有开启,当开启后才会追踪⿏标的点击事件。

        def mouseMoveEvent(self, e):
                x = e.x()
                y = e.y()
                text = "x: {0}, y: {1}".format(x, y)
                self.label.setText(text)

e 代表了事件对象。⾥⾯有我们触发事件(⿏标移动)的事件对象。 x() 和 y() ⽅法得到⿏标的x和y 坐标点,然后拼成字符串输出到 QLabel 组件里。

程序展示:

 

 

 

事件发送

有时候我们会想知道是哪个组件发出了⼀个信号,PyQt5⾥的 sender() 方法能搞定这件事。

import sys
from PyQt5.QtWidgets import QMainWindow, QPushButton, QApplicationclass Example(QMainWindow):def __init__(self):super().__init__()self.initUI()def initUI(self):btn1 = QPushButton("Button 1", self)btn1.move(30, 50)btn2 = QPushButton("Button 2", self)btn2.move(150, 50)btn1.clicked.connect(self.buttonClicked)btn2.clicked.connect(self.buttonClicked)self.statusBar()self.setGeometry(300, 300, 350, 200)self.setWindowTitle('Event sender')self.show()def buttonClicked(self):sender = self.sender()self.statusBar().showMessage(sender.text() + ' was pressed')if __name__ == '__main__':app = QApplication(sys.argv)ex = Example()sys.exit(app.exec_())

这个例子里有俩按钮, buttonClicked() ⽅法决定了是哪个按钮能调⽤ sender() ⽅法。

        btn1.clicked.connect(self.buttonClicked)

        btn2.clicked.connect(self.buttonClicked)

两个按钮都和同⼀个slot绑定。

def buttonClicked(self):
        sender = self.sender()
        self.statusBar().showMessage(sender.text() + ' was pressed')

我们用调用 sender() 方法的方式决定了事件源。状态栏显示了被点击的按钮。

程序展示:

 信号发送

QObject 实例能发送事件信号。下面的例子是发送自定义的信号。

import sys
from PyQt5.QtCore import pyqtSignal, QObject
from PyQt5.QtWidgets import QMainWindow, QApplicationclass Communicate(QObject):closeApp = pyqtSignal()class Example(QMainWindow):def __init__(self):super().__init__()self.initUI()def initUI(self):self.c = Communicate()self.c.closeApp.connect(self.close)self.setGeometry(300, 300, 290, 150)self.setWindowTitle('Emit signal')self.show()def mousePressEvent(self, event):self.c.closeApp.emit()if __name__ == '__main__':app = QApplication(sys.argv)ex = Example()sys.exit(app.exec_())

我们创建了⼀个叫closeApp的信号,这个信号会在鼠标按下的时候触发,事件与 QMainWindow 绑定。

class Communicate(QObject):
    closeApp = pyqtSignal()

Communicate 类创建了⼀个 pyqtSignal() 属性的信号。

        self.c = Communicate()
        self.c.closeApp.connect(self.close)

closeApp 信号 QMainWindow 的 close()方法绑定。

 def mousePressEvent(self, event):
        self.c.closeApp.emit()
        

点击窗口的时候,发送closeApp信号,程序终止。

程序展示:

​​​​​​​

相关文章:

evt dvt pvt mp代表什么阶段

...

Composer初次接触

php一直都是简单处理一下单片机的后台服务,没什么深入研究 今天安装一个 php composer.phar require qiniu/php-sdkComposer完全不懂,照着一试,就报错了 - topthink/think-installer v1.0.12 requires composer-plugin-api ^1.0 -> found…...

P3667 [USACO17OPEN] Bovine Genomics G (set容器)

P3667 [USACO17OPEN] Bovine Genomics G[USACO17OPEN] Bovine Genomics G 题目描述 Farmer John owns \(N\) cows with spots and \(N\) cows without spots. Having just completed a course in bovine genetics, he is convinced that the spots on his cows are caused by m…...

Keil和VSCode协同开发STM32程序

系列文章 STM32单片机系列专栏 C语言术语和结构总结专栏 文章目录 1. 配置环境 2. 测试打开工程 3. 测试编译工程 随着项目的复杂度上升,开发者不仅需要强大的硬件支持,还需要一个高效和灵活的开发环境。 vscode是一款集成大量可以便携开发插件的代码…...

渗透测试常见开放端口及利用

常见的端口及其说明 1、文件共享服务端口端口号 端口说明 利用方向21/22/69 FTP/TFTP文件传输协议 允许匿名上传、下载、爆破和嗅探2049 NFS服务 配置不当139 Samba服务 爆破、未授权访问、远程代码执行389 LDAP目录访问协议 注入、允许匿名访问、弱口令2、远程连接服务端口端口…...

7.2K star!一个完全免费,可以本地部署的 AI 搜索聚合器。新手可尝试

原文链接:7.2K star!一个完全免费,可以本地部署的 AI 搜索聚合器。新手可尝试 ChatGPT 刚上线的时候我用的很少,还是习惯用 Google。主要还是因为不信任,怕它对我胡说八道。 慢慢的,也没有一个明确的时间…...

python -- PyQt5(designer)中文详细教程(四)事件和信号

事件 signals and slots也 被其他⼈翻译成信号和槽机制。 所有的应用都是事件驱动的。事件大部分都是由用户的行为产⽣的,当然也有其他的事件产生方式,比如网络的连接,窗口管理器或者定时器等。调⽤应⽤的exec_()⽅法时,应⽤会进⼊…...

你绝对想象不到的端对端通信的几种方式

一、前言 今天要和大家说的是我们常用的一些端对端的通信方式,这里我们会以python和php语言为主,举例说明客户端、浏览器端和服务器端通信,部分代码可能展示不全,不过我会放在文末链接供大家下载测试,下面我们先来让大…...

序列化--Serial

序列化:将数据结构或对象转换成二进制串的过程。 反序列化:将在序列化过程中所生成的二进制串转换成数据结构或者对象的过程。 Parcelable 与 Serializeable 的区别 SerializableParcelable通过IO对硬盘操作,速度较慢直接在内存操作&#x…...

BDD - SpecFlow ExternalData Plugin 导入外部测试数据

BDD - SpecFlow ExternalData Plugin 导入外部测试数据引言SpecFlow ExternalData 插件支持的数据源Tags实践创建一个 Class Libary Project添加 NuGet Packages添加测试数据源文件CSV 文件Excel 文件添加 Feature 文件实现 Step Definition执行Scenario 导入测试数据源Scenari…...

[Power Query] 日期和时间处理

Power Query查询编辑器为日期和时间数据提供了强大而快捷的处理方式 例1: 从日期中提取年、月份、日、季度、周、天等信息 数据源 步骤1:将数据源导入到Power BI Desktop,单击【转换数据】选项,进入Power Query查询编辑器界面 步骤2:选中"日期&qu…...

设计模式之抽象工厂模式

利用反射技术简单梳理抽象工厂模式 工厂模式实现 通常我们在实际工作中,经常遇到需要访问数据库的场景。 而常见的数据库又多种多样,怎么样针对不同的数据库来建立不同的数据库连接呢? 我们可以看下用抽象工厂模式加上反射技术来如何实现。…...

JavaWeb_第5章_会话技术_Cookie+Session

JavaWeb_第5章_会话技术_CookieSession 文章目录JavaWeb_第5章_会话技术_CookieSession1,会话跟踪技术的概述2,Cookie2.1 Cookie的基本使用2.2 Cookie的原理分析2.3 Cookie的使用细节2.3.1 Cookie的存活时间2.3.2 Cookie存储中文3,Session3.1…...

跟着实例学Go语言(一)

本教程全面涵盖了Go语言基础的各个方面。一共80个例子,每个例子对应一个语言特性点,非常适合新人快速上手。 教程代码示例来自go by example,文字部分来自本人自己的理解。 本文是教程系列的第一部分,共计20个例子、约1万字。 目…...

数据库基础 - 数据类型、关键字、cmd中操作数据库的命令

cmd中操作数据库的命令 mysql -hlocalhost -用户名 -密码 show database;查询数据库中的小数据库 show 数据库名;查询某一个小数据库 show 表名;查询表的结构 exit 退出数据类型 数值类型 int :整形 double:双精度&…...

2022SDNU-ACM结训赛题解

首先感谢一下各位出题人的精心准备、验题人的辛勤付出、以及选手的积极参加 题解 Problem A 柳予欣的归来【数学】 出题人&#xff1a; bhq 没想到一血是被打完山大的牛客比赛后来结训赛玩的wyx拿走的&#xff01; 题目描述&#xff1a; 计算(∑0<d<pd−1)m(\sum_{0…...

《人类简史》笔记三—— 历史从无正义

目录 一、尽管把人人生而平等喊得震天响&#xff0c;其实还是把人分成了上下等级 二、恶性循环 三、当男人究竟有什么好的&#xff1f; 一、尽管把人人生而平等喊得震天响&#xff0c;其实还是把人分成了上下等级 古时候&#xff1a; 上等人 平民和奴隶 现在&#xff1a;…...

Python实现基于用户的协同过滤推荐算法构建电影推荐系统

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 基于用户的协同过滤推荐&#xff08;User-based CF&#xff09;的原理假设&#xff1a;跟你喜好相似的人…...

阿里巴巴专场——第322场周赛题解

目录 模拟法&#xff1a;6253.回环句 排序后模拟&#xff1a;6254. 划分技能点相等的团队 BFS&#xff1a;6255. 两个城市间路径的最小分数 BFS&#xff1a;6256. 将节点分成尽可能多的组 模拟法&#xff1a;6253.回环句 这道题直接按照题目的意思暴力模拟即可&#xff1a;…...

【机器学习】支持向量回归

有任何的书写错误、排版错误、概念错误等&#xff0c;希望大家包含指正。 在阅读本篇之前建议先学习&#xff1a; 【机器学习】支持向量机【上】硬间隔 【机器学习】支持向量机【下】软间隔与核函数 支持向量回归 支持向量回归&#xff08;support vector regression&#xf…...

Linux安装mysql

1、 查看是否已经安装 Mysql rpm -qa | grep mysql 如果你查看出来有东西&#xff0c;可以使用下面命令将其删除 rpm -e 文件名 2 、下载官方 Mysql 包 wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm 如果安装有提示&#xff1a;Cannot…...

JeecgBoot搭建(低代码)

环境安装 后端&#xff1a;JDK: 1.8 (小于11)、Maven: 3.5、MySql: 5.7、Redis: 3.2 前端&#xff1a;Node Js: 14.18 / 16、Npm: 5.6.0、Yarn: 1.21.1 、Pnpm 工具&#xff1a; IDEA、Navicat、Git、TortoiseGit拉取代码 后端&#xff1a;git clone https://gitee.com/jeecg/…...

【java】3-获取线程引用与线程的属性

1.获取线程的引用 在创建一个线程之后&#xff0c;我们很有必要去获取当前线程实例的引用&#xff0c;以便能够观察到线程的一些属性&#xff0c;或是对于当前线程进行一系列的操作 调用Thread类的静态方法currentThread&#xff0c;我们便能拿到当前线程的引用 Thread.curr…...

2022-12-04一周学习

这周基本上还是在对前端学习的更多一点&#xff0c;主要是之前没有重视vue3的学习,现在在补上来&#xff0c;学习了vue3的一些知识&#xff0c;前端的权限管理&#xff0c;设置路由守卫&#xff0c;pinia&#xff0c;还学习了redis的一些基本操作&#xff0c;之前只是照搬了别人…...

CG-34 浊度传感器 简单说明

产品概述 浊度传感器是一种智能监测水中悬浮物对光线透过时所发生的阻碍程度的仪器。允许在水中的测量点进行无人值守的操作。采用自清洗设计&#xff0c;可清除水中附着物以及气泡聚集而影响测量结果。具有优异的抗污染能力&#xff0c;即使恶劣的环境长期在线监测&#xff0c…...

跟着实例学Go语言(二)

本教程全面涵盖了Go语言基础的各个方面。一共80个例子&#xff0c;每个例子对应一个语言特性点&#xff0c;非常适合新人快速上手。 教程代码示例来自go by example&#xff0c;文字部分来自本人自己的理解。 本文是教程系列的第二部分&#xff0c;共计20个例子、约1.2万字。 …...

linux+window+macos下的JDK安装

1. Linux中安装JDK &#xff08;1&#xff09;下载Linux版本的jdk压缩包 &#xff08;2&#xff09;解压 tar -zxvf 压缩包名 例如&#xff1a; tar -zxvf jdk-8u251-linux-x64.tar.gz&#xff08;3&#xff09;在系统配置文件配置java 编辑profile配置文件 vim /etc/prof…...

DiffuSEEG:一种基于stable diffusion 的SEEG数据补全方法

目录一. 立体脑电图&#xff08;SEEG&#xff09;1.1 SEEG概念1.2 SEEG作用1.3 SEEG的适用场景1.4 操作方法一. 立体脑电图&#xff08;SEEG&#xff09; 1.1 SEEG概念 立体脑电图&#xff08;SEEG&#xff09;&#xff1a;是一种借助外科微创的方法将电极植入到大脑不同的部…...

kubernetes—Service介绍

Service介绍 在kubernetes中&#xff0c;pod是应用程序的载体&#xff0c;我们可以通过pod的ip来访问应用程序&#xff0c;但是pod的ip地址不是固定的&#xff0c;这也就意味着不方便直接采用pod的ip对服务进行访问。 为了解决这个问题&#xff0c;kubernetes提供了Service资…...

AlphaFold2源码解析(7)--模型之Evoformer

AlphaFold2源码解析(7)–模型之Evoformer 这篇文章我们主要药讲解AlphaFold2的Evoformer的代码细节。 Evoformer Stack 该网络有一个双塔结构&#xff0c;在MSA堆栈中具有轴向的自我注意&#xff1b;在Pair堆栈中具有三角形的乘法更新和三角形的自我注意&#xff1b;以及外积…...

docker 安装 redis 6.0.8 cluster 实战 (3主3从) 动态扩容

这里将上篇博客搭建的3主3从 扩容为 4主4从 1. 新建两个node节点 docker run -d \ --net host \ --privileged \ --name redis-node-7 \ --log-opt max-size100m \ --log-opt max-file3 \ -v /root/docker/redis-node-7/data:/data \ redis:6.0.8 \ --cluster-enabled yes \ -…...

20221204

You are so much more than how you look. 你比你的外表更有魅力 Never give up until the fight is over. 永远不要放弃&#xff0c;要一直战斗到最后一秒。 whats done cannot be undone 覆水难收 If I was going somewhere, I was running。 如果我要去哪儿&#xff…...

CN_数据链路层流量控制@可靠的传输机制@ARP协议

文章目录流量控制技术(协议)停止-等待流量控制滑动窗口流量控制发送窗口接收窗口基本原理可靠的传输机制确认机制ACK超时重传机制RTOARQ处理差错自动重传请求ARQ协议&#x1f388;ARQ具体协议单帧ARQ协议停止-等待协议SW-ARQ例连续ARQ协议后退N帧协议(GBN)GBN多帧滑动窗口累计确…...

程序人生 | 与足球共舞的火柴人(致敬格拉利什,赋予足球更深的意义)

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;也会涉及到服务端 &#x1f4c3;个人状态&#xff1a; 在校大学生一枚&#xff0c;已拿多个前端 offer&#xff08;秋招&#xff09; &#x1f680;未…...

安装ubuntu20.04, CUDA11.4, cnDNN, tensorflow, pytorch

ubuntu22.04默认python为3.11 ubuntu20.04默认python为3.8 第一步&#xff0c;分区安装系统 efi引导区, 逻辑分区&#xff0c;512M root: 主分区&#xff0c;512M swap: 逻辑分区&#xff0c;64G home:逻辑分区&#xff0c;320G /:逻辑分区, 130G&#xff0c; CUDA是安装…...

shell脚本受限执行

shell 中运行的脚本或脚本的个代码断会禁用一些正常 shell 中可以执行的命令.这是限制脚本用户的权限和最小化运行脚本导致的破坏的安全措施.受限的内容包括&#xff1a;使用 cd 命令更改工作目录. 更改环境变量$PATH, $SHELL, $BASH_ENV,或$ENV 的值. 读或更改 shell 环境选项…...

HTTP 速查手册

一、通用身份验证 # 服务端返回401&#xff0c;并告知验证类型为Basic GET 401 Unauthorized WWW-Authenticate: Basic realm"description"# 浏览器输入验证信息后&#xff0c;请求头中携带验证信息 Authorization: Basic xxxxxxxxxx二、Cookie # 服务端返回set-co…...

【计算机视觉】 摄像机标定

摄像机标定 齐次坐标 齐次坐标&#xff0c;将欧氏空间的无穷远点&#xff0c;与投影空间中有实际意义的消失点&#xff0c;建立起映射关系。 把齐次坐标转化为笛卡尔坐标的方法&#xff1a;是前面n-1个坐标分量分别除以最后一个分量即可 一些解释和性质&#xff1a; 比较好的…...

【Redis】Redis安装步骤和特性以及支持的10种数据类型(Redis专栏启动)

&#x1f4eb;作者简介&#xff1a;小明java问道之路&#xff0c;专注于研究 Java/ Liunx内核/ C及汇编/计算机底层原理/源码&#xff0c;就职于大型金融公司后端高级工程师&#xff0c;擅长交易领域的高安全/可用/并发/性能的架构设计与演进、系统优化与稳定性建设。 &#x1…...

DHTMLX Diagram JavaScript/HTML5 Pro Library:5.0

Diagram — JavaScript/HTML5 Diagram Library Ω578867473 破解版DHTMLX Diagram comprises a set of interactive HTML5 UI components such as organization charts, flowcharts, decision trees, block diagrams, mind maps, etc. Consisting of nodes and connectors, di…...

GPS卫星位置解算

本文介绍了基于C语言的GPS卫星位置解算原理与程序设计。针对每个原理、公式、代码设计进行了详细讲解&#xff0c;希望能够给测绘学子们带来帮助。 参考书籍&#xff1a; 李征航 黄劲松&#xff1a;GPS测量与数据处理&#xff08;第三版&#xff09; 目录 基础原理 1&#xf…...

大数据:Sqoop 简介与安装

一、Sqoop 简介 Sqoop 是一个常用的数据迁移工具&#xff0c;主要用于在不同存储系统之间实现数据的导入与导出&#xff1a; 导入数据&#xff1a;从 MySQL&#xff0c;Oracle 等关系型数据库中导入数据到 HDFS、Hive、HBase 等分布式文件存储系统中&#xff1b; 导出数据&am…...

[附源码]计算机毕业设计文曦家教预约系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…...

HK1 BOX刷入 Armbian系统作为服务器

HK1 BOX刷入 Armbian系统作为服务器 1 安装Armbian到EMMC 硬件 HK1 BOX s905 x3 固件版本选择 Armbian_23.02.0_Aml_s905x3_bullseye_5.15.80_server_2022.12.01用usb启动&#xff0c;tf/sd有的设备不行&#xff0c;有干扰&#xff0c;有可能从TF卡无法启动系统。 用usb启…...

CEC2015:动态多目标野狗优化算法求解CEC2015(提供完整MATLAB代码,含GD、IGD、HV和SP评价指标)

一、动态多目标优化问题简介 现实世界中&#xff0c;许多优化问题不仅具有多属性&#xff0c;而且与时间相关&#xff0c;即随着时间的变化&#xff0c;优化问题本身也发生改变&#xff0c;这类问题称为动态多目标优化问题&#xff08;dynamic multi-objective optimization p…...

【蓝桥杯选拔赛真题31】python三位数组合个数 青少年组蓝桥杯python 选拔赛STEMA比赛真题解析

目录 python三位数组合个数 一、题目要求 1、编程实现 2、输入输出...

SpringBoot项目--如何不停服更新应用?

原文网址&#xff1a;SpringBoot项目--如何不停服更新应用&#xff1f;_IT利刃出鞘的博客-CSDN博客 简介 说明 本文介绍Java后端项目如何不停机更新服务。 在生产环境中&#xff0c;一般都会每个服务部署多个实例。只要多于1个实例&#xff0c;就可以不停服更新应用。 不停服…...

MVVM与Vue响应式原理

Vue的响应式实现原理 MVVM M&#xff1a;模型 》data中的数据 V&#xff1a;视图 》模板 VM&#xff1a;视图模型 》Vue实例对象 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0EWNM16D-1670161519474)(C:\Users\lucas\Desktop\学习\图片\mode…...

vue和react的生命周期

vue和react的生命周期 一、Vue的生命周期二、React的生命周期2.1.类组件2.2.函数式组件一、Vue的生命周期 初始化阶段(组件创建、数据初始化)、挂载、更新、销毁 父子组件生命周期执行顺序 初次加载组件时:父beforeCreate – 父created – 父beforeMount – 子beforeCreate …...

浏览器高度兼容性

浏览器的卷去高度 1.标准模式 document.documentElement.scrollTop 2.非标准模式 document.body.scrollTop 浏览器高度兼容性 1.标准模式下 浏览器的实际高度&#xff1a; document.body.clientHeight 浏览器的可视高度&#xff1a;document.documentElement.clientHeight 2.非…...

关于天干地支及其计算

以天干地支计算日期是我国悠良的传统文化&#xff0c;最近在看如何计算人的生辰八字&#xff0c;写了个程序&#xff0c;但是只能算年的干支&#xff0c;月、日的干支计算方法太复杂了&#xff0c;望之只能却步&#xff0c;还是乖乖去查万年历比较好。这里记下关于干支的一些东…...

数据结构和算法之如何建立图

小白BG.1 邻接矩阵表示的图结点的结构 typedef struct GNode *PtrToGNode;//PtrToGNode是指向GNode的一个指针 struct GNode{ int Nv;//顶点数 int Ne;//边数 WeightType G[MaxVertexNum][MaxVertexNum]; DataType Data[MaxVertexNum];//存顶点的数据 }; typedef PtrToGNode MG…...

计算机毕业设计Java大众采编本微资讯发布平台(源码+系统+mysql数据库+lw文档)

计算机毕业设计Java大众采编本微资讯发布平台(源码系统mysql数据库lw文档) 计算机毕业设计Java大众采编本微资讯发布平台(源码系统mysql数据库lw文档)本源码技术栈&#xff1a; 项目架构&#xff1a;B/S架构 开发语言&#xff1a;Java语言 开发软件&#xff1a;idea eclipse…...

web前端-javascript-立即执行函数(说明、例子)

立即执行函数 /* (function(){alert("我是一个匿名函数~~~"); })(); */(function (a, b) {console.log("a " a);console.log("b " b); })(123, 456);1. 说明 函数定义完&#xff0c;立即被调用&#xff0c;这种函数叫做立即执行函数立即执…...

【计算机视觉】图像形成与颜色

图像形成与颜色 光照及阴影 辐射度学 颜色 颜色信息反映了入射光的能量分布与波长&#xff0c;可见光的波长在400nm到760nm之间。 RGB RGB分别代表三个基色&#xff08;R-红色、G-绿色、B-蓝色&#xff09;&#xff0c;如(0,0,0)表示黑色、(255, 255, 255)表示白色。其中2…...

Musical Christmas Lights——一个圣诞树灯光✨随音乐节奏改变的前端开源项目

文章目录前言视频介绍项目截图项目地址项目源码以上就是本篇文章的全部内容&#xff0c;将你编写好的项目分享给你的朋友们或者那个TA吧&#xff01;制作不易&#xff0c;求个三连&#xff01;❤️ &#x1f4ac; ⭐️前言 今天博主在刷短视频时&#x1f610;&#xff0c;朋友推…...

第十六届“中关村青联杯”全国研究生数学建模竞赛-C题:视觉情报信息分析(续)(附python代码实现)

目录 ⼋、任务四求解 8.1 模型求解 8.1.2 测算该老宅的占地面积...

MySQL性能优化:EXPLAIN简单介绍

EXPLAIN 是 MySQL 中的一个命令&#xff0c;用于提供一个 SQL 查询语句&#xff08;如 SELECT, INSERT, UPDATE, DELETE&#xff09;的执行计划。执行计划是由 MySQL 查询优化器生成的&#xff0c;它描述了 MySQL 如何执行特定查询&#xff0c;包括它如何访问表的数据&#xff…...

【WP】猿人学4 雪碧图、样式干扰

https://match.yuanrenxue.cn/match/4 探索 首先打开Fiddler&#xff0c;发现每个包的除了page参数一样&#xff0c;然后重放攻击可以实现&#xff0c;尝试py复现 Python可以正常拿到数据&#xff0c;这题不考请求&#xff0c;这题的难点原来在于数据的加密&#xff0c;这些数字…...

linux根文件系统挂载失败

报错 List of all partitions: Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,7) [ 3.130607] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 5.10.168 #11 [ 3.136769] Hardware name: Novatek NS02302 (DT) [ 3.141283] Call trace: [ 3.143…...

Pandas中explode()函数的应用与实战

目录 引言 explode() 函数基础 实际案例分析 进阶用法和注意事项 与其他函数的结合使用 结论 引言 在数据处理和分析的过程中&#xff0c;我们经常会遇到具有嵌套结构的数据集&#xff0c;如列表、字典等形式的列。Pandas库作为Python中强大的数据处理工具&#xff0c;提…...

芯片验证5个月经验总结

接上一个帖子http://t.csdnimg.cn/EGcqB 年前从转到海思做芯片验证&#xff0c;在项目非常紧的情况下&#xff0c; 干了几个项目&#xff0c;也就熟悉了基本的linux操作&#xff0c;还有基本的问题定位。对于验证的整体流程还是比较懵的状态。 1.目前还不懂的 1&#xff09;端到…...