【Python-GUI图形化界面-PyQt5模块(3)】——Qwidget核心模块

news2024/9/27 4:55:36

 本文旨在带大家学习Python中的一种GUI图形化界面模块——PyQt5模块,将为大家详细了解PyQt5模块中函数的参数和使用:

一、PyQt5简介

PyQt是Qt框架的Python语言实现,由Riverbank Computing开发,是最强大的GUI库之一。

官方网站:www.riverbankcomputing.com

图片


核心模块—QWidget创建基础窗口和布局

一、QWidget 目录导航

QWidget是所有 UI 元素的基类,提供了基础的窗口和布局功能。

show():显示窗口或小部件。

hide():隐藏窗口或小部件。

close():关闭窗口或小部件。

resize(width, height):调整窗口或小部件的大小。

setWindowTitle(title):设置窗口的标题。

setGeometry(x, y, width, height):设置窗口的位置和大小。


二、QWidget是所有 UI 元素的基类,提供了基础的窗口和布局功能。

w = QWidgei()    创建应用程序实例

在PyQt或PySide框架中,QWidget 是所有用户界面对象的基类,它继承自QObject和QPaintDevice。这个类提供了一个容器,可以用来放置其他用户界面控件(如按钮、标签、输入框等),并且可以自定义绘制内容。

QWidgei() 完整签名:

QWidget(parent=None, flags=Qt.WindowFlags())

基本用法:

windows = QWidget()   
# 创建一个QWidget对象,它是窗口的根节点,也是整个窗口的主部分。

形参列表:

主要形参:

形参名

类型

形参解释/基本用法

parent(父控件)

类型: QWidget 或 None,默认None

作用:

指定这个控件的父控件。如果设置了父控件,该控件将被嵌入到父控件内,作为子控件存在。若父控件销毁时,子控件也会被销毁。通常用于将一个控件放在另一个控件内。例如,把按钮放到一个窗口内。

flags(窗口标志)

类型: Qt.WindowFlags(整数位标志)

默认值: Qt.WindowFlags()

作用:

 设置窗口的行为或外观。例如,可以控制窗口是否有标题栏、是否是工具窗口、是否无边框等。这个标志用于定义窗口的显示方式,可以组合多个标志一起使用。

parent 参数示例(父控件设置): 这个示例展示如何使用QWidget并设置父控件。我们创建一个主窗口,并在其中嵌入一个子控件。
# 创建主窗口
main_window = QWidget()
main_window.setWindowTitle("主窗口")

# 创建子控件 (按钮),并指定 main_window 作为它的父控件
button = QPushButton("点击我", parent=main_window)
flags 参数示例(窗口标志设置): 下面是使用flags设置窗口的示例,将窗口设置为无边框的工具窗口。
tool_window = QWidget(flags=Qt.Tool | Qt.FramelessWindowHint)
tool_window.setWindowTitle("工具窗口")

效果:

此时窗口局域栏的 比如 “最小化”、“最大化”、“关闭”“窗口标题”等按钮则不见了;
(忽略下面按钮和文字,为了演示添加的,现在可以不用管,下面我来解释每个设置窗口的外观)

参数:

flags 参数

参数解释

Qt.Tool

窗口不会出现在任务栏上(除非明确设置)。

Qt.FramelessWindowHint

无边框的工具窗口。(上面已举例)

Qt.WindowMinimizeButtonHint

为窗口添加最小化按钮。

Qt.WindowMaximizeButtonHint

为窗口添加最大化按钮。

Qt.WindowCloseButtonHint

为窗口添加关闭按钮(默认情况下,Windows系统会自动提供这个功能,但其他系统可能需要手动设置)。

Qt.Dialog

将窗口设置为对话框。

Qt.SplashScreen

将窗口设置为启动时显示的加载界面,通常用于展示启动动画或品牌Logo。

Qt.Popup

将窗口设置为弹出窗口,通常用于右键菜单或提示框。

参数总结:

·  parent 参数用于指定父控件,常用于层级结构的UI布局。

·  flags 参数用于控制窗口的行为和外观,例如无边框、工具窗口等。

示例:

·parent 参数示例(父控件设置): 上面已有示例!基本参数就那些!!
·flags 参数示例(窗口标志设置):

flags参数可以组合多个标志来实现复杂的窗口行为。除了Qt.Tool和Qt.FramelessWindowHint,还有很多有用的标志可以探索:

(下面我将参数都列出来,并包含解释,然后看效果)

效果示例:
Qt.Tool 窗口不会出现在任务栏上(除非明确设置)。
# 窗口不会出现在任务栏上(除非明确设置)。
w = QWidget(flags=Qt. Tool)

效果:

可以看到任务栏并没有我们的python窗口

设置成别的参数之后任务栏正常显示我们的窗口;所以默认是显示任务栏图标的;

Qt.FramelessWindowHint 无边框的工具窗口。
# 无边框的工具窗口。(上面已举例)
w = QWidget(flags=Qt.FramelessWindowHint)
效果:

可以看到我们的窗口没有边框

Qt.WindowMinimizeButtonHint 为窗口添加最小化按钮。
#为窗口添加最小化按钮。
w = QWidget(flags=Qt.WindowMinimizeButtonHint)
效果:

可以看到我们添加了最小化的按钮,此时最大化和关闭按钮是(灰色)无法使用的;

Qt.WindowMaximizeButtonHint 为窗口添加最大化按钮。
# 为窗口添加最大化按钮。
w = QWidget(flags=Qt. Qt.WindowMaximizeButtonHint)
效果:

添加最大化按钮:此时最大化按钮可用

Qt.WindowCloseButtonHint 为窗口添加关闭按钮
# 为窗口添加关闭按钮
w = QWidget(flags= Qt.WindowCloseButtonHint)
效果:

添加关闭按钮:此时可以点击按钮关闭程序;

Qt.Dialog 将窗口设置为对话框
# 将窗口设置为对话框
w = QWidget(flags=Qt.Dialog)
作用解释(这个需要自己理解图片表达不出来):

QWidgetQWidget 是 PyQt 或 PySide 中用于创建各种控件和窗口的基类。

·flags=Qt.DialogQt.Dialog 是一个窗口标志,指定窗口为对话框类型。带有 Qt.Dialog 标志的窗口通常表现为弹出对话框,具有以下特点:

·独立性:对话框会作为一个独立窗口弹出,不同于工具窗口,它通常用于获取用户的输入或提供重要信息。

·焦点管理:对话框在打开时,通常会捕获用户的焦点(特别是模态对话框),这意味着在用户处理完对话框之前,无法与其他窗口进行交互。

·显示方式:对话框通常比主窗口小,且不会显示在任务栏上(除非显式设置)。

对话框常用于警告、设置、文件选择器等交互界面。

常见的使用场景:

·确认操作:例如,在删除文件时,弹出一个模态对话框,要求用户确认操作。

·填写表单:如果需要用户完成一个表单,或者填写一些必须的信息,模态对话框可以确保他们在提交之前不能继续其他操作。

·警告和错误:模态对话框常用于显示重要的警告或错误信息,确保用户在解决问题之前无法继续使用主窗口。

总结:

·模态对话框:会阻塞主窗口的交互,用户必须先完成对话框中的操作(如点击确定或关闭)才能返回主窗口。这在要求强制用户处理某个问题、确认操作或提供必要输入时非常有效。

·非模态对话框:用户可以自由切换到其他窗口,适合不那么紧急的任务,如辅助工具窗口或调试信息。

模态对话框的调用方法是 exec_(),这样主窗口会被“锁定”直到对话框被关闭。

Qt.SplashScreen 将窗口设置为启动时显示的加载界面
# 将窗口设置为启动时显示的加载界面
w = QWidget(flags= Qt.SplashScreen)
效果-(代码示例):

使用 Qt.SplashScreen 标志创建 QWidget 会创建一个启动画面窗口,通常用于应用程序启动时显示临时信息或加载进度。启动画面窗口通常是没有窗口边框的,并且在启动期间不允许与应用程序进行交互。

作用解释:

  1. QWidgetQWidget 是 PyQt 或 PySide 中用于创建控件和窗口的基类。
  2. flags=Qt.SplashScreenQt.SplashScreen 标志用于创建启动画面(Splash Screen)。这个窗口通常会在应用程序加载时显示公司标志、版本号、加载进度等,等应用加载完成后自动关闭。

启动画面的特点:

  • 无边框:没有标题栏、边框、或系统窗口控件(如最小化、最大化、关闭按钮)。
  • 短暂显示:通常在应用程序启动时显示,等应用加载完成后自动关闭。
  • 无交互:启动画面不接受用户的输入,也不会出现在任务栏中。

启动画面的常见用法:

  1. 显示应用程序的标志、名称或版本号。
  2. 在应用程序加载过程中展示状态或进度信息。
from PyQt5.QtWidgets import QApplication, QSplashScreen
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPixmap
import time

app = QApplication([])

# 创建启动画面(使用 QSplashScreen 而不是 QWidget)
pixmap = QPixmap("logo.png")  # 假设有一个名为 'logo.png' 的图片
splash = QSplashScreen(pixmap, Qt.SplashScreen)

# 显示启动画面
splash.show()

# 模拟加载过程(例如,应用程序启动期间的初始化)
time.sleep(3)  # 模拟启动延迟

# 关闭启动画面
splash.close()

# 进入应用的主窗口(这里可以加载主窗口)
# main_window = MainWindow()
# main_window.show()

app.exec_()

解释:

  • QSplashScreenQSplashScreen 是一个专门用于显示启动画面的类,比直接使用 QWidget 更常见和方便。
  • pixmapQPixmap 是一个图像对象,用于在启动画面中显示图像。
  • show():显示启动画面。
  • time.sleep(3):模拟启动延迟(实际应用中,你可以在这里进行初始化工作,比如加载资源、数据库连接等)。

·close():启动画面结束后自动关闭。

注意:

如果你只是想显示一个临时的、无边框的窗口,那么 Qt.SplashScreen 是非常适合的。如果你需要更复杂的交互,则应该选择其他窗口类型。

Qt.Popup 将窗口设置为弹出窗口,通常用于右键菜单或提示框。
#将窗口设置为弹出窗口,通常用于右键菜单或提示框。
w = QWidget(flags= Qt.Popup)
效果:

作用解释:

  1. QWidget:这是 PyQt 或 PySide 中用于创建控件和窗口的基类。
  2. flags=Qt.PopupQt.Popup 是一个窗口标志,它指定窗口为弹出窗口。这种类型的窗口通常会在特定事件(例如点击按钮、右键菜单等)时显示,并且具有以下特点:
    • 无边框:弹出窗口通常没有标题栏和系统窗口控件(如最小化、最大化、关闭按钮)。
    • 自动关闭:当用户点击窗口外部的区域时,弹出窗口会自动关闭。
    • 临时窗口:这种窗口是临时显示的,适用于上下文菜单、工具提示等短时间展示的内容。

示例场景:

  • 右键上下文菜单。
  • 工具提示(tooltip)。
  • 自定义的弹出式输入框、选择框。

示例代码:

from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton
from PyQt5.QtCore import Qt

app = QApplication([])

# 创建弹出窗口
popup = QWidget(flags=Qt.Popup)
popup.setWindowTitle("弹出窗口")

# 设置弹出窗口的布局和内容
layout = QVBoxLayout()
button = QPushButton("点击我关闭")
button.clicked.connect(popup.close)  # 点击按钮关闭弹出窗口
layout.addWidget(button)
popup.setLayout(layout)

# 设置窗口大小和显示位置
popup.resize(200, 100)
popup.move(300, 300)  # 设置弹出窗口的位置
popup.show()  # 显示为弹出窗口

app.exec_()

内容拓展总结。

QtWidgets 提供了丰富的小部件和方法,用于构建复杂的用户界面。常用的小部件包括按钮 (QPushButton)、标签 (QLabel)、文本框 (QLineEdit) 和布局类 (QVBoxLayout, QHBoxLayout) 等,每个小部件都有相应的方法用于管理其行为和外观。


三、SHOW():显示窗口或小部件。

show() 方法属于 QWidget 类,用于将窗口小部件显示在屏幕上

show() 完整签名:

注意:show() 没有任何形参,它直接将小部件显示出来,因此你不需要传递任何参数。

基本用法:

app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle('基本 show() 示例')

# 显示窗口
window.show()

形参列表:

主要形参:

show() 没有任何形参,它直接将小部件显示出来,因此你不需要传递任何参数。

示例:

from PyQt5.QtWidgets import QApplication, QWidget
import sys

app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle('基本 show() 示例')

# 显示窗口
window.show()

sys.exit(app.exec_())

拓展应用总结:

·show() 可以结合 Qt 信号槽机制进行动态界面更新。

· 通过在不同的事件(如按钮点击、键盘按下)中调用 show(),可以让 GUI 的元素根据用户交互动态地显示或隐藏。

·结合 resize()、move() 等方法,可以改变窗口或控件的大小和位置。

四、hide():隐藏窗口或小部件。

hide() 方法与 show() 相对,用于隐藏小部件或窗口。它属于 QWidget 类。

HIDE() 完整签名:

和 show() 一样,hide() 也没有任何形参,调用它后,窗口或控件将被隐藏。

基本用法:

# 显示窗口
window.show()、

形参列表:

主要形参:

show() 没有任何形参,它直接将小部件显示出来,因此你不需要传递任何参数。

示例:

from PyQt5.QtWidgets import QApplication, QPushButton, QWidget
import sys

app = QApplication(sys.argv)

# 创建主窗口
window = QWidget()
window.setWindowTitle('hide() 示例')

# 创建一个按钮
button = QPushButton("Hide Me", window)

# 点击按钮后隐藏按钮
button.clicked.connect(button.hide)

# 显示窗口
window.show()

# 运行应用程序主循环
sys.exit(app.exec_())
解释:

当用户点击按钮时,button.hide() 方法被调用,按钮将从界面上消失。

拓展应用总结:

·hide() 方法用于隐藏窗口或控件,与 show() 相对。

·常与 show() 结合使用,用于动态控制界面元素的显示与隐藏。

·没有参数,调用后直接隐藏指定的控件或窗口。

五、close():关闭窗口或小部件。

close() 方法属于 QWidget 类,用于关闭窗口或控件。当调用该方法时,目标窗口或控件会被销毁。

Close() 完整签名:​​​​​​​

bool close()

基本用法:​​​​​​​

button.clicked.connect(window.close)

主要形参:

返回值:

True:如果窗口成功关闭,则返回 True。

False:如果窗口拒绝关闭(比如在 closeEvent 中取消了关闭动作),则返回 False。

示例:

from PyQt5.QtWidgets import QApplication, QPushButton, QWidget
import sys

# 初始化应用程序
app = QApplication(sys.argv)

# 创建主窗口
window = QWidget()
window.setWindowTitle('close() 示例')

# 创建按钮
button = QPushButton("Close Window", window)

# 点击按钮后关闭窗口
button.clicked.connect(window.close)

# 显示窗口
window.show()

# 运行应用程序主循环
sys.exit(app.exec_())

解释

点击按钮时,调用 window.close(),主窗口将关闭,并退出程序。

拓展应用总结:

六、Resize()设置窗口或部件的大小

resize() 方法属于 QWidget 类,用于设置窗口或控件的大小(宽度和高度)。通过调用 resize() 方法,你可以指定控件或窗口的宽度和高度。

resize() 完整签名:

void resize(int width, int height);

基本用法:​​​​​​​

button.clicked.connect(window.close)

主要形参:

形参名

解释

Width

窗口或控件的宽度(整数,像素为单位)。

Height

窗口或控件的高度(整数,像素为单位)。

示例:​​​​​​​

from PyQt5.QtWidgets import QApplication, QWidget
import sys

# 初始化应用程序
app = QApplication(sys.argv)

# 创建窗口
window = QWidget()
window.setWindowTitle('resize() 示例')

# 调整窗口大小为 400x300 像素
window.resize(400, 300)

# 显示窗口
window.show()

# 运行应用程序主循环
sys.exit(app.exec_())
解释:

window.resize(400, 300):将窗口的宽度设置为 400 像素,高度设置为 300 像素。

调用 resize() 时,你可以自定义控件或窗口的大小,这通常用于窗口初始化或在运行时调整界面的布局。

拓展应用总结:

拓展应用场景:

响应式布局:在应用程序中,可以根据用户交互(例如调整控件内容或用户输入)来自动调整窗口或控件的大小。

自适应界面:有时需要根据内容自动调整控件的大小,例如动态表单、输入框等,可以在适当的时机调用 resize() 来调整布局。

最小和最大窗口大小限制:结合 setMinimumSize()setMaximumSize() 可以进一步控制窗口的最小和最大大小。

七、setWindowsTitle()设置窗口的标题

setWindowTitle() 是 PyQt5 中用于设置窗口标题的正确方法。以下是详细的说明。

setWindowsTitle() 完整签名:​​​​​​​

void setWindowTitle(const QString &title);

基本用法:​​​​​​​

w.setWindowTitle('flags 参数示例(窗口标志设置)') 
 # 设置窗口的标题为"Simple"。

主要形参:

形参名

解释

Title

字符串类型(QString),表示窗口的标题文本,将显示在窗口的标题栏中。你可以传入任意有效的字符串内容。

示例:根据 按钮点击更改窗口标题

from PyQt5.QtWidgets import QApplication, QPushButton, QWidget, QVBoxLayout
import sys

# 初始化应用程序
app = QApplication(sys.argv)

# 创建窗口
window = QWidget()
window.setWindowTitle('Initial Title')  # 设置初始标题

# 创建布局
layout = QVBoxLayout()

# 创建按钮
button = QPushButton('Change Window Title')

# 定义按钮点击后的操作,更新窗口标题
def change_title():
    window.setWindowTitle('Title Changed!')

# 连接按钮点击信号到函数
button.clicked.connect(change_title)

# 将按钮添加到布局中
layout.addWidget(button)
window.setLayout(layout)

# 显示窗口
window.show()

# 运行应用程序主循环
sys.exit(app.exec_())

在这个示例中,用户点击按钮后窗口标题会发生变化。

扩展应用总结:

1. 动态反馈:你可以根据应用的不同状态(如加载进度、文件名等)动态更新窗口标题,提供更好的用户反馈。

2. 多窗口应用:在多窗口应用中,通过标题可以帮助用户区分不同的窗口内容(例如当前打开的文档名)。

3. 用户输入反馈:实时更新标题显示用户正在操作的数据(如搜索结果、当前选择的文件名等)。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Win32打开UWP应用

最近无意间发现Windows里一个神奇的文件夹。 shell:appsfolder 运行打开 这个文件夹后,你可以看到本机安装的所有应用程序。 我觉得这个挺方便的,所以做了一个简单的appFolderDialog包给C#用 项目地址:https://github.com/TianXiaTech/App…

大数据毕业设计选题推荐-内蒙古旅游景点数据分析系统-Hive-Hadoop-Spark

✨作者主页:IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

【有啥问啥】深度理解主动学习:机器学习的高效策略

深度理解主动学习:机器学习的高效策略 在大数据时代,数据量的爆炸性增长与有限的标注资源之间的矛盾日益凸显。如何高效地利用标注资源来训练高质量的模型,成为了机器学习领域亟待解决的问题。主动学习(Active Learning, AL&…

Oracle RMAN 无敌备份脚本

1 说明 上一篇文章:Oracle逻辑备份脚本,介绍了如何部署Oracle数据库的逻辑备份脚本,在数据迁移场景下十分好用,但是作为备份来说有点牵强。仅仅有逻辑备份时,当故障发生后,逻辑备份恢复只能恢复到某一时刻…

网络资源模板--Android Studio 飞机大战游戏

目录 一、项目演示 二、项目测试环境 三、项目详情 四、完整的项目源码 一、项目演示 网络资源模板--飞机大战 二、项目测试环境 三、项目详情 首页 1. **继承 Activity**: - SecondActivity 类继承自 Activity,表示一个新的屏幕或界面。 2. **重写 onCrea…

FLUX.1图像生成模型:AI工程师的实践与探索

文章目录 1 FLUX.1系列模型2 AI工程师的视角3 ComfyUI部署4 FLUX.1部署5 工作流6 面向未来 黑森林实验室(Black Forest Labs)研发的FLUX.1图像生成模型,以其120亿参数的庞大规模,正在重新定义图像生成技术的新标准。FLUX.1系列模型…

服务器数据恢复—SAN环境下LUN映射出错导致文件系统一致性出错的数据恢复案例

服务器数据恢复环境: SAN环境下一台存储设备中有一组由6块硬盘组建的RAID6磁盘阵列,划分若干LUN,MAP到不同业务的SOLARIS操作系统服务器上。 服务器故障: 用户新增了一台服务器,将存储中的某个LUN映射到新增加的这台服…

yolo自动化项目实例解析(六)自建UI(主窗口、预览窗口)

前面我们大致把各个代码块梳理出来了,但是还是不知道从那块开始,我们这里主要先通过ui页面的元素去推理整个执行过程,我们首先需要知道ui功能里面有那些组件 qt设计师基础控件 Qt Designer 是一个图形界面设计工具,用于创建 Qt 应…

遇到慢SQL、SQL报错,应如何快速定位问题 | OceanBase优化实践

在数据库的使用中,大家时常会遇到慢SQL,或执行出错的SQL。对于某些SQL问题,其错误原因显而易见,但也有不少情况难以直观判断。面对这类问题,我们应当如何应对?如何准确识别SQL错误的根源?是否需…

电脑usb接口封禁如何实现?5种禁用USB接口的方法分享!(第一种你GET了吗?)

“防患于未然,安全始于细节。”在信息技术飞速发展的今天,企业的信息安全问题日益凸显。 USB接口作为数据传输的重要通道,在带来便利的同时,也成为了数据泄露和安全风险的高发地。 因此,对电脑USB接口进行封闭管理&a…

WPF项目中使用Caliburn.Micro框架实现日志和主题切换

目录 一、添加Caliburn.Micro框架 二、配置Serilog日志 三、实现主题切换 Caliburn.Micro是MVVM模式的轻量级WPF框架,简化了WPF中的不少用法。这个框架中所有的页面控制都是通过ViewModel去实现的。 以下内容是自己在进行项目实战的同时进行记录的,对于…

【08】纯血鸿蒙HarmonyOS NEXT星河版开发0基础学习笔记-Scroll容器与Tabs组件

序言: 本文详细讲解了关于我们在页面上经常看到的可滚动页面和导航栏在鸿蒙开发中如何用Scroll和Tabs组件实现,介绍了Scroll和Tabs的基本用法与属性。 笔者也是跟着B站黑马的课程一步步学习,学习的过程中添加部分自己的想法整理为笔记分享出…

晶圆厂如何突破多网隔离实现安全稳定又快速的跨网域文件传输?

在当今数字化时代,晶圆厂作为高科技产业的核心,其生产效率和数据安全性直接影响到整个半导体行业的竞争力。晶圆厂内部网络通常被划分为多个安全域,如生产网络、研发网络、办公网络等,以确保数据安全和防止敏感信息泄露。然而&…

【RabbitMQ 项目】服务端:服务器模块

文章目录 一.编写思路二.代码实践三.服务端模块关系总结 一.编写思路 成员变量: muduo 库中的 TCP 服务器EventLoop 对象:用于主线程循环监控连接事件协议处理句柄分发器:用于初始化协议处理器,便于把不同请求派发给不同的业务处理…

大语言模型在构建UNSPSC 分类数据中的应用

UNSPSC 是联合国标准产品和服务代码。UNSPSC由联合国开发计划署(UNDP)和Dun & Bradstreet公司(D & B)于1998年联合制定,自2003年以来一直由GS1 US管理。GS1 US 将在 2024 年底前将 UNSPSC 的管理权移交给 UNDP…

【HarmonyOS】TaskPool非阻塞UI

TaskPool方法不会阻塞UI,如果做上传图片的功能加载Loading记得使用TaskPool,Promise、Async/Await都会阻塞UI 【引言】 发现Promise可能会阻塞UI,尝试使用async或await,但发现它们仍然会导致阻塞。后来看到chaoxiaoshu回复的Tas…

数字孪生平台,助力制造设备迈入超感知与智控新时代!

痛点剖析 当前,制造业面临系统分散导致的数据孤岛问题,严重阻碍了有效监管与统计分析;同时,设备多样化且兼容性不足,增加了管理难度;台账记录方式混乱,工单审批流程繁琐且效率低下;…

electron使用npm install出现下载失败的问题

我在使用electron进行下载时,经常出现一个错误。 HTTPError: Response code 404 (Not Found) for https://registry.npmmirror.com/v21.4.4/electron-v21.4.4-win32-x64.zip 这个时候需要修改一些npm的配置。使用命令npm config list -ls 滑到下面,找到一…

第一个maven web工程(eclipse)

1、点击file--》new--》Maven Project,如下: 2、直接next,如下 3、搜索web原型,如下 4、填写项目的坐标,如下 5、创建完成后,需要自己补一个文件夹,名称为java,如下: …

class 023 随机快速排序

这篇文章是看了“左程云”老师在b站上的讲解之后写的, 自己感觉已经能理解了, 所以就将整个过程写下来了。 这个是“左程云”老师个人空间的b站的链接, 数据结构与算法讲的很好很好, 希望大家可以多多支持左程云老师, 真心推荐. https://space.bilibili.com/8888480?spm_id_f…