Python教程(二十) : 十分钟入门【PyQt6】

文章目录

    • 专栏列表
    • 环境准备
      • 1 安装 Python
      • 2 安装 PyQt6
    • 创建 PyQt6 项目
      • 1 创建项目目录
      • 2 创建主 Python 文件
    • 代码书写测试流程
      • 1 导入 PyQt6 模块
      • 2 创建主窗口类
      • 3 创建应用程序实例并运行
  • 核心解析:
    • PyQt6 中的模块
      • 示例代码:
    • PyQt6 常用的控件
      • 1. QPushButton(按钮)
      • 2. QLabel(标签)
      • 3. QLineEdit(文本输入框)
      • 4. QTextEdit(文本编辑框)
      • 5. QComboBox(下拉框)
      • 6. QListWidget(列表框)
      • 7. QTableWidget(表格)
      • 8. QSlider(滑块)
      • 9. QProgressBar(进度条)
      • 10. QCheckBox(复选框)
      • 11. QRadioButton(单选按钮)
      • 12. QSpinBox(数字选择框)
      • 13. QGroupBox(组框)
      • 14. QStackedWidget(堆叠窗体)
      • 15. QMenuBar(菜单栏)
      • 16. QToolBar(工具栏)
      • 17. QStatusBar(状态栏)
      • 18. QFileDialog(文件对话框)
      • 19. QMessageBox(消息框)
      • 20. QInputDialog(输入对话框)
    • PyQt6 布局管理器
      • 1. 水平布局(QHBoxLayout)
      • 2. 垂直布局(QVBoxLayout)
      • 3. 网格布局(QGridLayout)
      • 4. 表单布局(QFormLayout)
      • 5. 堆叠布局(QStackedLayout)
      • 布局的嵌套和组合
      • 注意事项
      • 代码示例:
    • PyQt6 事件绑定
      • 1. 定义槽函数
      • 2. 创建信号源对象
      • 3. 使用 lambda 表达式
      • 4. 绑定键盘事件
      • 5. 绑定鼠标事件
      • 6. 自定义控件事件
    • 总结
    • 参考资源

专栏列表

  • Python教程(十):面向对象编程(OOP)
  • Python教程(十一):单元测试与异常捕获
  • Python教程(十二):面向对象高级编程详解
  • Python教程(十三):常用内置模块详解
  • Python教程(十四):Requests模块详解
  • Python教程(十五):IO 编程
  • Python教程(十六):进程、线程、线程锁
  • Python教程(十七):协程、 asyncio与 aiohttp【异步IO】
  • Python教程(十八): 从零到一教会你用 Django【Web 开发】
  • Python教程(十九):使用Tkinter制作计算器

在这里插入图片描述

正文开始如果觉得文章对您有帮助,请帮我三连+订阅,谢谢💖💖💖


PyQt6 是一个用于创建跨平台桌面应用程序的 Python 绑定集合,它提供了对 Qt6 库的访问。Qt6 是一个强大的 C++ 库,用于开发具有图形用户界面的应用程序。PyQt6 允许 Python 开发者利用 Qt6 的强大功能来创建美观、响应迅速的应用程序。

环境准备

1 安装 Python

确保你的开发环境中安装了 Python。你可以从 Python 官网 下载并安装。

2 安装 PyQt6

使用 pip 安装 PyQt6:

pip install PyQt6  -i https://pypi.tuna.tsinghua.edu.cn/simple

创建 PyQt6 项目

1 创建项目目录

在你的工作目录中创建一个新的文件夹来存放你的项目文件:

mkdir my_pyqt6_project && cd my_pyqt6_project

2 创建主 Python 文件

在项目目录中创建一个 Python 文件,这将是你的 PyQt6 应用程序的入口点:

touch main.py

代码书写测试流程

1 导入 PyQt6 模块

main.py 文件中,首先导入 PyQt6 相关的模块:

from PyQt6.QtWidgets import QApplication, QMainWindow, QPushButton
from PyQt6.QtCore import Qt
import sys

2 创建主窗口类

创建一个继承自 QMainWindow 的类,并设置窗口的基本属性:

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("PyQt6 应用程序")
        self.setGeometry(100, 100, 400, 300)  # 设置窗口位置和大小

        # 创建一个按钮并设置属性
        self.button = QPushButton("点击我", self)
        self.button.setGeometry(150, 130, 100, 30)  # 设置按钮位置和大小
        self.button.clicked.connect(self.on_button_clicked)

    def on_button_clicked(self):
        print("按钮被点击了")

3 创建应用程序实例并运行

main.py 文件的底部,创建 QApplication 实例,并运行应用程序:

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec())

在命令行中,运行你的 main.py 文件:

python main.py

核心解析:

PyQt6 中的模块

PyQt6 类是由一系列模块组成的,包括如下的模块:

  • QtCore
  • QtGui
  • QtWidgets
  • QtDBus
  • QtNetwork
  • QtHelp
  • QtXml
  • QtSvg
  • QtSql
  • QtTest
  1. QtWidgets
    这是用于创建和管理 GUI 窗口、对话框、控件和项目的主要模块。它包括按钮、文本框、标签、菜单、工具栏等组件。
  • QApplication:管理 GUI 应用程序的控制流和主要设置。
  • QWidget:所有用户界面对象的基类。
  • QMainWindow:主窗口的基类。
  • QPushButtonQLabelQLineEdit 等:用于创建不同类型的控件。
  1. QtGui
    包含用于绘制文本、图像、图形和视频的类。它还包含颜色、字体、画笔和画刷等工具。
  • QPainter:用于在窗口小部件上进行绘图。
  • QIconQPixmap:用于处理图标和图像。
  • QFont:用于创建和修改字体。
  1. QtCore
    包含核心功能,如对象树、事件系统、计时器、信号和槽等。
  • QObject:所有 Qt6 对象的基类,引入了事件处理和计时器。
  • QThread:用于多线程编程。
  • QTimer:用于创建计时器。
  • QCoreApplication:管理应用程序的事件循环和核心设置。
  1. QtSvg: 用于处理 SVG 文件和渲染 SVG 图像的模块。

  2. QtNetwork: 提供网络通信功能的模块,包括 TCP/IP、UDP 和本地套接字。

  3. QtSerialPort: 用于访问串行端口的模块。

  4. QtSql: 提供对 SQL 数据库的访问,支持 SQLite、MySQL、PostgreSQL 等。

  5. QtXml: 用于处理 XML 文档的模块。

  6. QtWebSockets: 用于处理 WebSocket 通信的模块。

  7. QtMultimedia: 用于处理音频、视频和相机的模块。

  8. QtBluetooth: 用于处理蓝牙功能的模块。

  9. QtPrintSupport: 用于打印功能的模块。

  10. QtCharts: 用于创建图表的模块。

  11. QtDataVisualization: 用于数据可视化的模块。

  12. QtQuick: 用于创建 Qt Quick 应用程序的模块,支持 QML。

  13. QtWebEngine: 提供 Web 浏览器功能的模块。

  14. QtTest: 用于编写和执行单元测试的模块。

  15. QtScxml: 用于状态机和基于状态的应用程序的模块。

  16. QtDBus: 用于 D-Bus 通信的模块。

示例代码:

创建了一个主窗口,给窗口设置的状态栏,菜单栏工具栏,右键面板等功能

import sys
from PyQt6.QtWidgets import QApplication, QWidget, QToolTip, QPushButton, QMessageBox, QMainWindow, QMenu, QTextEdit, 
    QLabel, QHBoxLayout, QVBoxLayout, QGridLayout, QLineEdit
from PyQt6.QtGui import QFont,QAction,QIcon

class MenuBar(QMainWindow):

    def __init__(self):
        super().__init__()

        self.initUI()


     def initUI(self):
        # 设置左下角状态栏
        self.statusBar()
        self.statusBar().showMessage('程序准备好了')
        # 这里创建了一个文本编辑器组件,并把它设置到 QMainWindow 的中央。居中布局组件撑满了所有空白的部分。
        textEdit = QTextEdit("这是一个文本输入框")
        self.setCentralWidget(textEdit)

        # 设置工具栏
        self.toolbar = self.addToolBar('退出')

        exitAct = QAction(QIcon('logo.png'), '&退出', self)
        exitAct.setShortcut('Ctrl+Q')
        exitAct.setStatusTip('退出应用')
        exitAct.triggered.connect(QApplication.instance().quit)

        self.toolbar.addAction(exitAct)
        # 设置菜单栏
        menubar = self.menuBar()
        fileMenu = menubar.addMenu('&操作')
        fileMenu.addAction(exitAct)

        childMenu = QMenu("子菜单",self)
        childAction= QAction("子事件",self)
        childMenu.addAction(childAction)

        fileMenu.addMenu(childMenu)

        self.setGeometry(300, 300, 350, 250)
        self.setWindowTitle('主窗口示例')
        self.show()

    # 添加右键菜单
    def contextMenuEvent(self, event):
        cmenu = QMenu(self)

        newAct = cmenu.addAction("New")
        openAct = cmenu.addAction("Open")
        quitAct = cmenu.addAction("Quit")
        action = cmenu.exec(self.mapToGlobal(event.pos()))

        if action == quitAct:
            QApplication.instance().quit()

# 启动
def main():
    app = QApplication(sys.argv)

    m = MenuBar()

    sys.exit(app.exec())



if __name__ == '__main__':
    main()

在这里插入图片描述

PyQt6 常用的控件

1. QPushButton(按钮)

用于创建一个可点击的按钮。

  • text:按钮上显示的文本。
  • icon:按钮上的图标。
  • clicked:当按钮被点击时发出的信号。

2. QLabel(标签)

用于显示文本或图像。

  • text:标签上显示的文本。
  • pixmap:标签上显示的图像。
  • alignment:文本或图像的对齐方式。

3. QLineEdit(文本输入框)

用于让用户输入单行文本。

  • text:输入框中的文本。
  • placeholderText:输入框为空时显示的占位符文本。

4. QTextEdit(文本编辑框)

用于显示和编辑多行文本。

  • text:编辑框中的文本。
  • readOnly:设置编辑框是否只读。

5. QComboBox(下拉框)

允许用户从列表中选择一个选项。

  • items:下拉框中的选项列表。
  • currentText:当前选中的文本。

6. QListWidget(列表框)

显示一个列表,并允许用户选择其中的项。

  • items:列表中的项。
  • currentItem:当前选中的项。

7. QTableWidget(表格)

显示一个表格,可以包含多行和多列。

  • rowCount:表格的行数。
  • columnCount:表格的列数。
  • item:表格中的单元格项。

8. QSlider(滑块)

允许用户通过滑动来选择一个值。

  • minimum:滑块的最小值。
  • maximum:滑块的最大值。
  • value:滑块的当前值。

9. QProgressBar(进度条)

显示任务的进度。

  • minimum:进度条的最小值。
  • maximum:进度条的最大值。
  • value:进度条的当前值。

10. QCheckBox(复选框)

允许用户选择一个或多个选项。

  • text:复选框旁边的文本。
  • checked:复选框是否被选中。

11. QRadioButton(单选按钮)

允许用户在一组选项中选择一个。

  • text:单选按钮旁边的文本。
  • checked:单选按钮是否被选中。

12. QSpinBox(数字选择框)

允许用户选择一个整数值。

  • minimum:可选择的最小值。
  • maximum:可选择的最大值。
  • value:当前选中的值。

13. QGroupBox(组框)

用于将相关的控件组合在一起。

  • title:组框的标题。

14. QStackedWidget(堆叠窗体)

允许在多个页面之间切换。

  • currentIndex:当前显示的页面索引。

15. QMenuBar(菜单栏)

用于创建应用程序的菜单栏。

  • actions:菜单栏中的操作列表。

16. QToolBar(工具栏)

用于创建工具栏,包含一组工具按钮。

  • actions:工具栏中的操作列表。

17. QStatusBar(状态栏)

用于显示应用程序的状态信息。

  • message:在状态栏上显示的消息。

18. QFileDialog(文件对话框)

用于打开、保存文件或浏览文件夹。

  • fileMode:文件对话框的模式(例如,只读、写入等)。

19. QMessageBox(消息框)

用于显示消息框。

  • text:消息框中的文本。
  • icon:消息框中的图标类型。

20. QInputDialog(输入对话框)

用于获取用户的输入。

  • text:输入对话框中的文本。

PyQt6 布局管理器

PyQt6 提供了几种布局管理器,包括 QHBoxLayoutQVBoxLayoutQGridLayoutQFormLayoutQStackedLayout

1. 水平布局(QHBoxLayout)

水平布局管理器将控件水平排列。它按照控件添加到布局中的顺序从左到右排列控件。

from PyQt6.QtWidgets import QApplication, QWidget, QPushButton, QHBoxLayout

app = QApplication([])
window = QWidget()
layout = QHBoxLayout()

button1 = QPushButton('Button 1')
button2 = QPushButton('Button 2')
layout.addWidget(button1)
layout.addWidget(button2)
window.setLayout(layout)
window.show()
app.exec()

2. 垂直布局(QVBoxLayout)

垂直布局管理器将控件垂直排列。它按照控件添加到布局中的顺序从上到下排列控件。

from PyQt6.QtWidgets import QVBoxLayout

layout = QVBoxLayout()
layout.addWidget(button1)
layout.addWidget(button2)
window.setLayout(layout)

3. 网格布局(QGridLayout)

网格布局管理器将控件放置在一个网格中,每个控件都占据网格的特定行和列。它非常适合创建表格形式的布局。

from PyQt6.QtWidgets import QGridLayout

layout = QGridLayout()
layout.addWidget(button1, 0, 0)  # 第0行,第0列
layout.addWidget(button2, 0, 1)  # 第0行,第1列
layout.addWidget(another_button, 1, 0)  # 第1行,第0列
window.setLayout(layout)

4. 表单布局(QFormLayout)

表单布局管理器用于创建表单,它将标签和字段两两对应地排列。这种布局特别适合创建表单界面。

from PyQt6.QtWidgets import QFormLayout, QLineEdit

layout = QFormLayout()
layout.addRow('Label 1:', QLineEdit())
layout.addRow('Label 2:', QLineEdit())
window.setLayout(layout)

5. 堆叠布局(QStackedLayout)

堆叠布局管理器允许你在多个控件之间进行选择和切换,就像标签页一样。它通常与 QStackedWidget 一起使用。

from PyQt6.QtWidgets import QStackedWidget, QPushButton

stacked_widget = QStackedWidget()
page1 = QWidget()
page2 = QWidget()
button1 = QPushButton('Button 1', page1)
button2 = QPushButton('Button 2', page2)
stacked_widget.addWidget(page1)
stacked_widget.addWidget(page2)
layout = QVBoxLayout()
layout.addWidget(stacked_widget)
window.setLayout(layout)

布局的嵌套和组合

你可以将不同的布局嵌套和组合使用,以创建复杂的用户界面。例如,你可以在一个 QVBoxLayout 中放置一个 QHBoxLayout 和一个 QGridLayout

from PyQt6.QtWidgets import QVBoxLayout, QHBoxLayout, QPushButton

main_layout = QVBoxLayout()
horizontal_layout = QHBoxLayout()
horizontal_layout.addWidget(QPushButton('Button 1'))
horizontal_layout.addWidget(QPushButton('Button 2'))

grid_layout = QGridLayout()
grid_layout.addWidget(QPushButton('Button 3'), 0, 0)
grid_layout.addWidget(QPushButton('Button 4'), 0, 1)

main_layout.addLayout(horizontal_layout)
main_layout.addLayout(grid_layout)
window.setLayout(main_layout)

注意事项

  • 每个 QWidget 只能设置一个布局。
  • 使用 addLayout 方法可以将一个布局添加到另一个布局中。
  • 使用 addWidget 方法可以将控件添加到布局中。
  • 布局管理器会自动调整控件的大小,以适应窗口的大小变化。

代码示例:

下面是使用绝对定位、水平、垂直,网格等定位的代码实例

import sys
from PyQt6.QtWidgets import QApplication, QWidget, QToolTip, QPushButton, QMessageBox, QMainWindow, QMenu, QTextEdit, 
    QLabel, QHBoxLayout, QVBoxLayout, QGridLayout, QLineEdit
from PyQt6.QtGui import QFont,QAction,QIcon
class Position(QWidget):

    def __init__(self):
        super().__init__()
        # 绝对的定位
        # self.absoluteLayout()
        # 水平垂直定位,不能跟 网格同时存在
        # self.HVLayout()
        # 网格定位
        # self.gridLayout()
        #
        self.formLayout()
    def absoluteLayout(self):
        label1 = QLabel(self)
        label1.setText('姓名:')
        label1.move(40,40)

        label2 = QLabel(self)
        label2.setText('年龄:')
        label2.move(80, 80)

        self.resize(400, 400)
        self.move(300, 300)
        self.show()

    def HVLayout(self):
        btnOK = QPushButton(self)
        btnCancel = QPushButton(self)
        btnOK.setText('确认')
        btnCancel.setText('取消')

        Hlayout = QHBoxLayout(self)
        Hlayout.addStretch(1)
        Hlayout.addWidget(btnOK)
        Hlayout.addWidget(btnCancel)
        Vlayout = QVBoxLayout()
        Vlayout.addStretch(1)
        Vlayout.addLayout(Hlayout)
        self.setGeometry(300,300, 350, 250)
        self.setLayout(Vlayout)


    def gridLayout(self):
        grid = QGridLayout()
        self.setLayout(grid)
        names = ['Cls', 'Bck', '', 'Close',
                 '7', '8', '9', '/',
                 '4', '5', '6', '*',
                 '1', '2', '3', '-',
                 '0', '.', '=', '+']

        positions = [(i, j) for i in range(5) for j in range(4)]

        for position, name in zip(positions, names):

            if name == '':
                continue

            button = QPushButton(name)
            grid.addWidget(button, *position)

        self.setGeometry(300,300, 350, 250)
        self.show()

    def formLayout(self):
        title = QLabel("标题")
        desc = QLabel('描述')
        content = QLabel('内容')


        titleEdit = QLineEdit("第一个篇文章")
        descEdit = QLineEdit('入坑指南')
        contentEdit = QTextEdit('内容:从入门到放弃')

        grid = QGridLayout()
        grid.setSpacing(10)
        grid.addWidget(title,1,0)
        grid.addWidget(titleEdit,1,1,1,8)

        grid.addWidget(desc, 2, 0)
        grid.addWidget(descEdit, 2, 1,1,8)

        grid.addWidget(content, 3, 0)
        grid.addWidget(contentEdit, 3, 1,2,8)

        grid.addWidget(QPushButton('提交'),6,5)
        grid.addWidget(QPushButton('重置'),6,7)

        self.setLayout(grid)
        self.setGeometry(300,300,450,350)
        self.show()
# 启动
def main():
    app = QApplication(sys.argv)
    w = MyWidget()
    d= Position()
    sys.exit(app.exec())



if __name__ == '__main__':
    main()

在这里插入图片描述

在这里插入图片描述

PyQt6 事件绑定

在 PyQt6 中,通常是通过信号和槽机制来实现的。信号(Signals)是由对象发出的通知,表示发生了某个特定的事件,而槽(Slots)是响应这些信号的函数或方法。你可以将信号绑定到槽上,以便当信号被发出时,相应的槽函数被调用。

1. 定义槽函数

首先,你需要定义一个槽函数,这个函数将作为信号的响应。例如,为按钮点击事件定义一个槽函数:

from PyQt6.QtWidgets import QApplication, QPushButton, QMainWindow

def on_button_clicked():
    print("按钮被点击了")

2. 创建信号源对象

创建一个信号源对象,例如一个按钮,并将其 clicked 信号连接到槽函数:

app = QApplication([])
window = QMainWindow()

button = QPushButton("点击我")
button.clicked.connect(on_button_clicked)  # 绑定信号到槽

window.setCentralWidget(button)
window.show()
app.exec()

3. 使用 lambda 表达式

如果你想要将信号连接到一个带参数的槽函数,或者在连接时传递特定的参数,你可以使用 lambda 表达式:

def handle_button_click(value):
    print(f"按钮被点击了,值为:{value}")

button.clicked.connect(lambda: handle_button_click(42))

4. 绑定键盘事件

你可以为窗口或其他控件绑定键盘事件:

def keyPressEvent(event):
    if event.key() == Qt.Key_Escape:
        print("Esc键被按下")
        window.close()

window.keyPressEvent = keyPressEvent

5. 绑定鼠标事件

同样,你可以为窗口或其他控件绑定鼠标事件:

def mousePressEvent(event):
    print("鼠标点击了窗口")

window.mousePressEvent = mousePressEvent

6. 自定义控件事件

如果你创建了自定义控件,你可以在其中定义新的信号,并在适当的时候发出这些信号:

from PyQt6.QtCore import pyqtSignal, QObject

class MyObject(QObject):
    my_signal = pyqtSignal()

# 使用
my_obj = MyObject()
my_obj.my_signal.connect(on_button_clicked)
my_obj.my_signal.emit()  # 发出信号

总结

通过本教程,你已经学会了如何使用 PyQt6 创建一个基本的 Python GUI 应用程序。PyQt6 提供了丰富的控件和灵活的布局管理,使得它成为快速开发 GUI 应用程序的理想选择。你可以继续探索 PyQt6 的更多高级特性,或者尝试创建更复杂的应用程序。

参考资源

  • PyQt6 官方文档
  • PyQt6 教程 - examples

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何选适合混合云环境下的监控系统?

在选择适合混合云环境下的监控系统时,需要考虑以下几个关键因素: 1. 兼容性 跨平台支持:确保监控系统能够无缝地在私有云、公有云和本地环境中运行。 API集成:支持与各种云服务提供商的API集成,以便收集来自不同来源的…

算法知识点————双指针【删除重复元素】【反转链表】

删除重复元素 题目://给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数 思路&#xff1a…

基于微信小程序的机票预订平台的设计与实现的设计与实现---附源码80729

摘要 本文介绍了一个基于微信小程序的机票预订平台的设计与实现。随着移动互联网的快速发展,用户对机票预订的需求日益增长,因此开发一个便捷、高效的机票预订平台变得尤为重要。 本文首先分析了机票预订平台的背景和需求,然后详细阐述了系统…

计算机毕业设计选题推荐-班级管理系统-教务管理系统-Java/Python项目实战

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

网络基础入门指南(一)

前言 在这个高度互联的世界里,互联网已成为日常生活不可或缺的一部分。然而,对于许多人来说,网络是如何工作的仍然是个谜。本文旨在为那些对网络基础知识感兴趣的朋友提供一个简单的介绍,帮助大家更好地理解互联网的基本原理和技…

远程搜索:remote-method

为了启用远程搜索,需要将filterable和remote设置为true,同时传入一个remote-method。remote-method为一个Function,它会在输入值发生变化时调用,参数为当前输入值。需要注意的是,如果el-option是通过v-for指令渲染出来…

【C++ Qt day9】

2、将day1做的登录界面升级优化【资源文件的添加】 3、 使用手动连接,将登录框中的取消按钮使用第2种方式的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数 将登录按钮使用qt4版本的连接到自定义的槽函数中,在槽函数中判断ui界面上…

elementui Cascader 级联选择器的使用总结

实现效果 技术要点总结如下: 1、点击添加自动增加多行,实现自主选择增加多条节点数据 2、节点地址使用的是Cascader 级联选择器,需要动态生成,涉及到一个技术要点是:因v-modal只能获取value不能获取label,故…

CCF编程能力等级认证GESP—C++7级—20240907

CCF编程能力等级认证GESP—C1级真题 单选题(每题 2 分,共 30 分)判断题(每题 2 分,共 20 分)编程题 (每题 25 分,共 50 分)小杨寻宝矩阵移动 单选题(每题 2 分,共 30 分&…

网络安全工程师(白帽子)企业级学习路线

第一阶段:安全基础(入门) 第二阶段:Web渗透(初级网安工程师) 第三阶段:进阶部分(中级网络安全工程师)

数据分析-14-时间序列异常检测的六类常用方法(案例实战)

1 异常值检测的六类方法 异常值检测与处理是数据清洗过程中的一个关键步骤,它涉及到识别和处理那些与大多数数据显著不同的数据点。异常值可能是由于数据录入错误、测量误差、数据损坏或其他原因造成的。处理异常值的目的是提高数据的质量,避免它们对分析结果产生不利影响。…

关于领英的干货文章

今天这篇文章是关于领英的干货文章 没有用领英还有已经在用的朋友记得点赞哦, 这样需要的时候才能找到“我” 从这几个点出发 linkedln的注册,资料信息设置linkedin 发布动态linkedin 加人linkedin 加群客户开发 注册及资料信息设置 注册linkedin新…

无人驾驶遇上‘超级WiFi‘,低速无人驾驶已成为了主要趋势?

嘿,各位工业大佬们!今天咱们来聊个又酷又实用的话题 - 工业无人驾驶!不过,别以为这只是在工厂里溜达溜达的小推车,我们要聊的可是能在矿山里"跑酷"的大家伙! 想象一下,在一个尘土飞扬的露天矿场,几辆庞大的无人卡车正在有条不紊地工作。它们像是被施了魔法一样,自动…

猜测、实现 B 站在看人数

猜测、实现 B 站在看人数 猜测找到接口参数总结 实现 猜测 找到接口 浏览器打开一个 B 站视频,比如 《黑神话:悟空》最终预告 | 8月20日,重走西游_黑神话悟空 (bilibili.com) ,打开 F12 开发者工具,经过观察&#xf…

简单的Linux Ftp服务搭建

简单的Linux FTP服务搭建 1.需求 公司有一个esb文件传输代理,其中我们程序有文件传输功能,需要将本地文件传输到esb文件代理服务器上,传输成功之后发送http请求,告知esb将固定文件进行传输到对应外围其他服务的文件目录中&#…

DBA运维小技巧之存储篇-Oracle服务器根目录满了怎么处理(1)LVM情况

故障发生了! 周末正在逛街DBA小倩接到一个客户紧急任务,客户说自己的业务数据库突然不好使了,连接也出现了问题,开发人员连库就报这个错 还好正在逛街的小倩同学随身带了笔记本电脑 小倩要来了系统的登录用户名密码&#xff…

AIGC之GAN生成器和判别器的公式

提示:以下是本篇文章正文内容,下面案例可供参考 在GAN(生成对抗网络)中,生成器(Generator)和判别器(Discriminator)通常是通过神经网络实现的,因此它们并没有…

林草湿地址、导出echart为word

2.导出 // 导出exportDoc () {this.loading truelet arrRefs [this.$refs.endChart, this.$refs.processChart, this.$refs.officeEndChart]setTimeout(() > {Promise.all(arrRefs.map((canvasDom) > {return this.html2canvasHandle(canvasDom)})).then(res > {let…

【AIGC】InstructPixPix:基于文本引导的图像编辑技术

github:diffusers/examples/instruct_pix2pix/train_instruct_pix2pix_sdxl.py at main huggingface/diffusers GitHub 论文:https://arxiv.org/pdf/2211.09800 摘要 我们提出了一种从人类指令编辑图像的方法:给定一个输入图像和告诉模型做什么的书面…

百度MEG数据开发治理平台-TDS

导读 百度MEG的上一代大数据产品存在平台分散、质量不均和易用性差等问题,导致开发效率低下、学习成本高,业务需求响应迟缓。为了解决这些问题,百度MEG内部开发了图灵3.0生态系统。图灵3.0覆盖了数据全生命周期,包括Turing Data …