PyQt5中的组件

文章目录

    • 1. 简介
    • 2. QCheckBox
    • 3. QPushButton
    • 4. QSlider
    • 5. QProgressBar
    • 6. QCalendarWidget
    • 7. QPixmap
    • 8. QLineEdit
    • 9. QSplitter
    • 10. QComboBox
    • 11. 总结

1. 简介

在PyQt5中,有许多不同类型的组件,可以用于构建各种GUI界面。以下是一些常见的PyQt5组件:

  1. QWidget: 是所有用户界面对象的基类。它提供了一些基本的功能,比如事件处理和绘图。
  2. QLabel: 用于显示文本或图像。可以用于显示静态文本或者图片。
  3. QPushButton: 是一个按钮组件,用于触发操作或者事件。
  4. QLineEdit: 用于接收单行文本输入。
  5. QTextEdit: 用于接收多行文本输入。
  6. QComboBox: 提供了一个下拉列表框,用户可以从中选择一个选项。
  7. QCheckBox: 用于表示二进制状态,例如选中/未选中,可以与其他组件一起使用来启用或禁用某些操作。
  8. QRadioButton: 用于表示一组选项中的一个,用户可以选择其中之一。
  9. QSlider: 允许用户通过拖动滑块来选择数值。
  10. QSpinBox: 允许用户通过增加或减少按钮来选择数值。
  11. QProgressBar: 显示操作的进度。
  12. QCalendarWidget: 提供了一个日历界面,用户可以选择日期。
  13. QTableWidget: 用于显示表格数据,支持行和列的操作。
  14. QTreeView: 显示树形结构的数据。
  15. QDockWidget: 可以将部件(widget)附加到主窗口的边缘,类似于浮动面板。

这些只是PyQt5中可用组件的一部分。使用这些组件,可以轻松创建各种功能的用户界面,从简单的对话框到复杂的桌面应用程序。这里,我们将介绍一些很有用的组件:QCheckBoxQPushButtonQSliderQProgressBarQCalendarWidgetQPixmapQLineEditQSplitter,和 QComboBox

2. QCheckBox

QCheckBox是PyQt5中的复选框组件,允许用户选择或取消选择一个或多个选项。下面是一个简单的介绍和使用案例,

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout, QCheckBoxclass CheckBoxExample(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):# 创建一个垂直布局管理器vbox = QVBoxLayout()# 创建一个标签self.label = QLabel("Nothing checked")# 将标签添加到布局中vbox.addWidget(self.label)# 创建两个复选框,并为其添加文本和状态变化的信号槽连接self.checkbox1 = QCheckBox("Option 1", self)self.checkbox1.stateChanged.connect(self.checkboxStateChanged)vbox.addWidget(self.checkbox1)self.checkbox2 = QCheckBox("Option 2", self)self.checkbox2.stateChanged.connect(self.checkboxStateChanged)vbox.addWidget(self.checkbox2)# 设置布局管理器self.setLayout(vbox)# 设置窗口的标题和初始大小self.setWindowTitle('QCheckBox Example')self.setGeometry(300, 300, 300, 150)self.show()def checkboxStateChanged(self, state):# 根据复选框的状态更新标签文本if self.checkbox1.isChecked() and self.checkbox2.isChecked():self.label.setText("Option 1 and Option 2 checked")elif self.checkbox1.isChecked():self.label.setText("Option 1 checked")elif self.checkbox2.isChecked():self.label.setText("Option 2 checked")else:self.label.setText("Nothing checked")if __name__ == '__main__':app = QApplication(sys.argv)ex = CheckBoxExample()sys.exit(app.exec_())

这个例子创建了一个简单的窗口,其中包含两个复选框和一个标签。当用户勾选或取消勾选复选框时,标签会相应地更新。

  • QCheckBox通过QCheckBox(text, parent)构造函数创建,其中text是复选框显示的文本,parent是父级窗口。
  • stateChanged信号与checkboxStateChanged槽函数连接,以便在复选框的状态发生变化时进行响应。
  • checkboxStateChanged槽函数根据复选框的状态更新标签的文本。
  • QVBoxLayout用于管理垂直方向上的布局。
  • setWindowTitlesetGeometry方法用于设置窗口的标题和初始大小。
  • show方法用于显示窗口。

这个例子展示了如何创建和使用QCheckBox,以及如何将其与其他组件和信号连接起来,实现交互功能。

运行结果如下

在这里插入图片描述

3. QPushButton

QPushButton是PyQt5中的按钮组件,用于在GUI应用程序中触发操作或事件。下面是一个使用QPushButton的介绍和使用案例,

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout, QLabelclass ButtonExample(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):# 创建一个垂直布局管理器vbox = QVBoxLayout()# 创建一个按钮self.button = QPushButton('Click me', self)# 创建一个标签,用于显示按钮点击后的输出self.label = QLabel("Output will be displayed here")# 将按钮和标签添加到布局中vbox.addWidget(self.button)vbox.addWidget(self.label)# 设置布局管理器self.setLayout(vbox)# 为按钮绑定点击事件的处理函数self.button.clicked.connect(self.buttonClicked)# 设置窗口的标题和初始大小self.setWindowTitle('QPushButton Example')self.setGeometry(300, 300, 300, 150)self.show()def buttonClicked(self):# 按钮被点击时执行的操作self.label.setText('Button clicked!')if __name__ == '__main__':app = QApplication(sys.argv)ex = ButtonExample()sys.exit(app.exec_())

这个例子创建了一个简单的窗口,其中包含一个按钮。当用户点击按钮时,会触发一个事件。

  • QPushButton通过QPushButton(text, parent)构造函数创建,其中text是按钮显示的文本,parent是父级窗口。
  • 将按钮添加到垂直布局管理器中。
  • 使用clicked信号连接按钮的点击事件和buttonClicked槽函数。
  • buttonClicked是一个自定义的槽函数,当按钮被点击时会被调用。
  • QVBoxLayout用于管理垂直方向上的布局。
  • setWindowTitlesetGeometry方法用于设置窗口的标题和初始大小。
  • show方法用于显示窗口。

这个例子演示了如何创建一个简单的按钮,以及如何为按钮的点击事件绑定处理函数。

运行结果如下

在这里插入图片描述

4. QSlider

QSlider是PyQt5中的滑块组件,允许用户通过拖动滑块来选择数值。下面是一个使用QSlider的介绍和使用案例,

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout, QSlider
from PyQt5.QtCore import Qtclass SliderExample(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):# 创建一个垂直布局管理器vbox = QVBoxLayout()# 创建一个标签,用于显示滑块当前值self.label = QLabel("Slider Value: 0")# 创建一个滑块self.slider = QSlider(Qt.Horizontal, self)self.slider.setMinimum(0)  # 设置最小值self.slider.setMaximum(100)  # 设置最大值self.slider.setValue(0)  # 设置初始值self.slider.setTickInterval(10)  # 设置刻度间隔self.slider.setTickPosition(QSlider.TicksBelow)  # 设置刻度位置# 将标签和滑块添加到布局中vbox.addWidget(self.label)vbox.addWidget(self.slider)# 设置布局管理器self.setLayout(vbox)# 为滑块的数值变化信号绑定槽函数self.slider.valueChanged.connect(self.sliderValueChanged)# 设置窗口的标题和初始大小self.setWindowTitle('QSlider Example')self.setGeometry(300, 300, 300, 150)self.show()def sliderValueChanged(self):# 滑块数值变化时执行的操作slider_value = self.slider.value()self.label.setText(f"Slider Value: {slider_value}")if __name__ == '__main__':app = QApplication(sys.argv)ex = SliderExample()sys.exit(app.exec_())

这个例子创建了一个简单的窗口,其中包含一个标签和一个滑块。当用户拖动滑块时,标签会显示滑块的当前值。

  • QSlider通过QSlider(orientation, parent)构造函数创建,其中orientation可以是Qt.Horizontal(水平方向)或Qt.Vertical(垂直方向),parent是父级窗口。
  • 使用setMinimumsetMaximum方法设置滑块的最小值和最大值。
  • 使用setValue方法设置滑块的初始值。
  • 使用setTickInterval方法设置滑块的刻度间隔。
  • 使用setTickPosition方法设置刻度的位置。
  • 将滑块的valueChanged信号连接到自定义的槽函数sliderValueChanged上。
  • sliderValueChanged槽函数在滑块数值变化时更新标签的文本。
  • QVBoxLayout用于管理垂直方向上的布局。
  • setWindowTitlesetGeometry方法用于设置窗口的标题和初始大小。
  • show方法用于显示窗口。

这个例子演示了如何创建一个简单的滑块,并在滑块数值变化时更新界面的其他部分。

运行结果如下

在这里插入图片描述

5. QProgressBar

QProgressBar是PyQt5中的进度条组件,用于显示操作的进度。下面是一个使用QProgressBar的介绍和使用案例,

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QProgressBar
from PyQt5.QtCore import QBasicTimerclass ProgressBarExample(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):# 创建一个垂直布局管理器vbox = QVBoxLayout()# 创建一个按钮,用于触发进度条的更新self.start_button = QPushButton('Start', self)# 创建一个进度条self.progress_bar = QProgressBar(self)self.progress_bar.setMinimum(0)  # 设置最小值self.progress_bar.setMaximum(100)  # 设置最大值# 将按钮和进度条添加到布局中vbox.addWidget(self.start_button)vbox.addWidget(self.progress_bar)# 设置布局管理器self.setLayout(vbox)# 为按钮绑定点击事件的处理函数self.start_button.clicked.connect(self.startProgress)# 初始化定时器self.timer = QBasicTimer()self.step = 0# 设置窗口的标题和初始大小self.setWindowTitle('QProgressBar Example')self.setGeometry(300, 300, 300, 150)self.show()def startProgress(self):# 当按钮被点击时启动定时器,每100毫秒调用一次timerEventif self.timer.isActive():self.timer.stop()self.start_button.setText('Start')else:self.timer.start(100, self)self.start_button.setText('Stop')def timerEvent(self, event):# 定时器事件,每次调用使进度条的值增加1if self.step >= 100:self.timer.stop()self.start_button.setText('Start')returnself.step = self.step + 1self.progress_bar.setValue(self.step)if __name__ == '__main__':app = QApplication(sys.argv)ex = ProgressBarExample()sys.exit(app.exec_())

这个例子创建了一个简单的窗口,其中包含一个按钮和一个进度条。当用户点击按钮时,进度条开始显示操作的进度。

  • QProgressBar通过QProgressBar(parent)构造函数创建,其中parent是父级窗口。
  • 使用setMinimumsetMaximum方法设置进度条的最小值和最大值。
  • 将按钮点击事件与startProgress方法绑定,用于启动或停止进度条的更新。
  • QBasicTimer用于定时器的控制,每次定时器事件触发时,timerEvent方法被调用,使进度条的值增加1。
  • timerEvent方法用于处理定时器事件,每次调用时使进度条的值增加1,直到达到最大值为止。
  • QVBoxLayout用于管理垂直方向上的布局。
  • setWindowTitlesetGeometry方法用于设置窗口的标题和初始大小。
  • show方法用于显示窗口。

这个例子演示了如何创建一个简单的进度条,并在按钮点击时启动进度条的更新。

运行结果如下

在这里插入图片描述

6. QCalendarWidget

QCalendarWidget是PyQt5中的日历组件,用于显示和选择日期。下面是一个使用QCalendarWidget的介绍和使用案例,

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QCalendarWidget, QLabel
from PyQt5.QtCore import QDateclass CalendarExample(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):# 创建一个垂直布局管理器vbox = QVBoxLayout()# 创建一个日历组件self.calendar = QCalendarWidget(self)# 设置最小日期和最大日期self.calendar.setMinimumDate(QDate(1900, 1, 1))self.calendar.setMaximumDate(QDate(2100, 12, 31))# 创建一个标签,用于显示选择的日期self.label = QLabel(self)self.label.setText("Selected Date: ")# 将日历组件和标签添加到布局中vbox.addWidget(self.calendar)vbox.addWidget(self.label)# 设置布局管理器self.setLayout(vbox)# 连接日历组件的selectionChanged信号到自定义的槽函数self.calendar.selectionChanged.connect(self.updateDateLabel)# 设置窗口的标题和初始大小self.setWindowTitle('QCalendarWidget Example')self.setGeometry(300, 300, 400, 300)self.show()def updateDateLabel(self):# 获取选择的日期,并更新标签的文本selected_date = self.calendar.selectedDate()self.label.setText("Selected Date: " + selected_date.toString())if __name__ == '__main__':app = QApplication(sys.argv)ex = CalendarExample()sys.exit(app.exec_())

这个例子创建了一个简单的窗口,其中包含一个日历组件和一个标签。当用户选择日期时,标签会显示选择的日期。

  • QCalendarWidget通过QCalendarWidget(parent)构造函数创建,其中parent是父级窗口。
  • 使用setMinimumDatesetMaximumDate方法设置日历的最小日期和最大日期。
  • 创建一个标签,用于显示选择的日期。
  • 将日历组件的selectionChanged信号连接到自定义的槽函数updateDateLabel上。
  • updateDateLabel槽函数在用户选择日期时被调用,获取选择的日期并更新标签的文本。
  • QVBoxLayout用于管理垂直方向上的布局。
  • setWindowTitlesetGeometry方法用于设置窗口的标题和初始大小。
  • show方法用于显示窗口。

这个例子演示了如何创建一个简单的日历组件,并在用户选择日期时更新界面的其他部分。

运行结果如下

在这里插入图片描述

7. QPixmap

QPixmap是PyQt5中用于处理图像的类,可以加载、显示和操作各种图像格式的图像数据。下面是一个使用QPixmap的介绍和使用案例,

import sys
from PyQt5.QtWidgets import QApplication, QLabel, QVBoxLayout, QWidget
from PyQt5.QtGui import QPixmapclass QPixmapExample(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):# 创建一个垂直布局管理器vbox = QVBoxLayout()# 创建一个QLabel用于显示图片self.label = QLabel(self)# 加载一张图片到QPixmappixmap = QPixmap("cat.png")  # 替换为你自己的图片路径# 设置QLabel的尺寸为图片的尺寸self.label.setPixmap(pixmap)# 添加QLabel到布局中vbox.addWidget(self.label)# 设置布局self.setLayout(vbox)# 设置窗口的标题和初始大小self.setWindowTitle('QPixmap Example')self.setGeometry(300, 300, 300, 200)self.show()if __name__ == '__main__':app = QApplication(sys.argv)ex = QPixmapExample()sys.exit(app.exec_())

这个例子创建了一个简单的窗口,其中包含一个QLabel用于显示图片。具体步骤如下:

  • QPixmap通过QPixmap(filename)构造函数创建,其中filename是图片文件的路径。
  • 使用QLabel.setPixmap()方法将QPixmap对象设置到QLabel中,以显示图片。
  • 通过QVBoxLayout布局管理器,将QLabel添加到布局中。
  • 使用setLayout()方法设置布局。
  • setWindowTitle()setGeometry()方法用于设置窗口的标题和初始大小。
  • 最后,使用show()方法显示窗口。

这个例子演示了如何使用QPixmap加载并显示一张图片。QPixmap还提供了其他方法来进行图像操作,例如缩放、裁剪和旋转等,可以根据需要进行进一步的图像处理。

运行结果如下

在这里插入图片描述

8. QLineEdit

QLineEdit是PyQt5中的文本输入框组件,用于接收单行文本输入。下面是一个使用QLineEdit的介绍和使用案例,

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout, QLineEditclass LineEditExample(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):# 创建一个垂直布局管理器vbox = QVBoxLayout()# 创建一个标签self.label = QLabel("Enter your name:")# 创建一个文本输入框self.line_edit = QLineEdit(self)# 将标签和文本输入框添加到布局中vbox.addWidget(self.label)vbox.addWidget(self.line_edit)# 设置布局管理器self.setLayout(vbox)# 连接文本输入框的textChanged信号到自定义的槽函数self.line_edit.textChanged.connect(self.onTextChanged)# 设置窗口的标题和初始大小self.setWindowTitle('QLineEdit Example')self.setGeometry(300, 300, 300, 150)self.show()def onTextChanged(self, text):# 文本输入框文本变化时执行的操作self.label.setText("Entered text: " + text)if __name__ == '__main__':app = QApplication(sys.argv)ex = LineEditExample()sys.exit(app.exec_())

这个例子创建了一个简单的窗口,其中包含一个标签和一个文本输入框。当用户在文本输入框中输入文本时,标签会显示输入的文本。

  • QLineEdit通过QLineEdit(parent)构造函数创建,其中parent是父级窗口。
  • 使用textChanged信号连接到自定义的槽函数onTextChanged,以便在文本输入框的文本发生变化时进行响应。
  • onTextChanged槽函数在文本输入框的文本变化时被调用,用于更新标签的文本显示。
  • QVBoxLayout用于管理垂直方向上的布局。
  • setWindowTitlesetGeometry方法用于设置窗口的标题和初始大小。
  • show方法用于显示窗口。

这个例子演示了如何创建一个简单的文本输入框,并在用户输入文本时更新界面的其他部分。

运行结果如下:

在这里插入图片描述

9. QSplitter

QSplitter是PyQt5中的分割窗口组件,用于在窗口中创建可调整大小的分割区域。下面是一个使用QSplitter的介绍和使用案例,

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QTextEdit, QPushButton, QHBoxLayout, QSplitterclass SplitterExample(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):# 创建一个垂直布局管理器vbox = QVBoxLayout()# 创建一个QSplitter,用于创建分割窗口splitter = QSplitter(self)# 创建两个文本编辑框text_edit1 = QTextEdit()text_edit2 = QTextEdit()# 将文本编辑框添加到分割窗口中splitter.addWidget(text_edit1)splitter.addWidget(text_edit2)# 设置分割窗口的初始大小splitter.setSizes([200, 200])# 创建一个按钮,用于调整分割窗口大小button = QPushButton("Adjust Splitter")# 将按钮添加到布局中hbox = QHBoxLayout()hbox.addWidget(button)# 将分割窗口和按钮添加到垂直布局中vbox.addWidget(splitter)vbox.addLayout(hbox)# 设置布局self.setLayout(vbox)# 设置按钮点击事件的处理函数button.clicked.connect(self.adjustSplitter)# 设置窗口的标题和初始大小self.setWindowTitle('QSplitter Example')self.setGeometry(300, 300, 500, 300)self.show()def adjustSplitter(self):# 调整分割窗口的大小sizes = [100, 300]self.findChild(QSplitter).setSizes(sizes)if __name__ == '__main__':app = QApplication(sys.argv)ex = SplitterExample()sys.exit(app.exec_())

这个例子创建了一个简单的窗口,其中包含一个分割窗口和一个按钮。分割窗口中包含两个文本编辑框,用户可以拖动分割窗口来调整两个文本编辑框的大小。具体步骤如下:

  • QSplitter通过QSplitter(orientation, parent)构造函数创建,其中orientation可以是Qt.Horizontal(水平方向)或Qt.Vertical(垂直方向),parent是父级窗口。
  • 使用addWidget方法将要放入分割窗口的组件(这里是两个文本编辑框)添加到分割窗口中。
  • 使用setSizes方法设置分割窗口的初始大小,以便用户在开始时就能看到两个部分的大小。
  • 创建一个按钮,用于调整分割窗口的大小。
  • 设置按钮点击事件的处理函数adjustSplitter,在按钮被点击时调整分割窗口的大小。
  • QHBoxLayout用于创建水平方向上的布局,以便将按钮放置在底部。
  • QVBoxLayout用于管理垂直方向上的布局,以便将分割窗口和按钮放置在窗口内。
  • setWindowTitlesetGeometry方法用于设置窗口的标题和初始大小。
  • show方法用于显示窗口。

这个例子演示了如何使用QSplitter创建可调整大小的分割窗口,以及如何在窗口中添加和管理其他组件。

运行结果如下

在这里插入图片描述

10. QComboBox

QComboBox是PyQt5中的下拉列表组件,允许用户从预定义的选项中选择一个。下面是一个使用QComboBox的介绍和使用案例,

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLabel, QComboBoxclass ComboBoxExample(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):# 创建一个垂直布局管理器vbox = QVBoxLayout()# 创建一个标签self.label = QLabel("Select your programming language:")# 创建一个下拉列表self.combo_box = QComboBox(self)self.combo_box.addItem("Python")self.combo_box.addItem("Java")self.combo_box.addItem("C++")self.combo_box.addItem("JavaScript")# 设置下拉列表默认选中项self.combo_box.setCurrentIndex(0)# 将标签和下拉列表添加到布局中vbox.addWidget(self.label)vbox.addWidget(self.combo_box)# 设置布局self.setLayout(vbox)# 连接下拉列表的currentIndexChanged信号到自定义的槽函数self.combo_box.currentIndexChanged.connect(self.onComboBoxChanged)# 设置窗口的标题和初始大小self.setWindowTitle('QComboBox Example')self.setGeometry(300, 300, 300, 150)self.show()def onComboBoxChanged(self, index):# 下拉列表项发生变化时执行的操作selected_item = self.combo_box.itemText(index)self.label.setText("Selected language: " + selected_item)if __name__ == '__main__':app = QApplication(sys.argv)ex = ComboBoxExample()sys.exit(app.exec_())

这个例子创建了一个简单的窗口,其中包含一个标签和一个下拉列表。当用户在下拉列表中选择不同的选项时,标签会显示选中的选项。

  • QComboBox通过QComboBox(parent)构造函数创建,其中parent是父级窗口。
  • 使用addItem方法添加预定义的选项到下拉列表中。
  • 使用setCurrentIndex方法设置下拉列表的默认选中项。
  • 连接下拉列表的currentIndexChanged信号到自定义的槽函数onComboBoxChanged上,以便在下拉列表的选项发生变化时进行响应。
  • onComboBoxChanged槽函数在下拉列表的选项变化时被调用,用于更新标签的文本显示。
  • QVBoxLayout用于管理垂直方向上的布局。
  • setWindowTitlesetGeometry方法用于设置窗口的标题和初始大小。
  • show方法用于显示窗口。

这个例子演示了如何创建一个简单的下拉列表,并在用户选择不同的选项时更新界面的其他部分。

运行结果如下

在这里插入图片描述

11. 总结

在这些示例中,我们使用了PyQt5中的不同组件来构建GUI应用程序。每个组件都有特定的功能和用途:

  1. QPushButton: 用于触发操作或事件,可以包含文本或图像。
  2. QSlider: 允许用户通过拖动滑块来选择数值,通常用于调整范围内的数值。
  3. QProgressBar: 用于显示操作的进度,通常在长时间操作时显示进度信息。
  4. QCheckBox: 允许用户选择或取消选择一个或多个选项,通常用于启用或禁用一组选项。
  5. QCalendarWidget: 用于显示和选择日期,通常用于日历应用程序或日期选择器。
  6. QPixmap: 用于加载、显示和操作图像数据。
  7. QLineEdit: 用于接收单行文本输入。
  8. QSplitter: 用于创建可调整大小的分割窗口,允许用户拖动分割窗口来调整大小。
  9. QComboBox: 用于在预定义选项中选择一个,通常用于提供选项选择功能。

通过结合使用这些组件,可以构建丰富多样的GUI应用程序,从简单的按钮操作到复杂的图像处理和数据输入,满足用户的各种需求。每个组件都可以与信号和槽连接,使得在用户交互时能够实现相应的动作或更新界面的其他部分。 PyQt5提供了丰富的文档和示例,以及灵活的布局管理器,使得GUI应用程序开发变得更加简单和灵活。

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

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

相关文章

NSSCTF中的web学习(md5())

目录 MD5的学习 [BJDCTF 2020]easy_md5 [LitCTF 2023]Follow me and hack me [LitCTF 2023]Ping [SWPUCTF 2021 新生赛]easyupload3.0 [NSSCTF 2022 Spring Recruit]babyphp MD5的学习 md5()函数: md5($a):返回a字符串的散列值 md5($a,TRUE)&…

地科前沿|AI与GIS的融合

AI与GIS的融合:推动地理信息科技的创新 人工智能(AI)与地理信息系统(GIS)的结合,形成了一种强大的合作关系,为科学、技术和社会领域带来了深刻的变革。这种融合不仅为地理空间数据的处理提供了更…

十大排序算法(java实现)

注:本篇仅用来自己学习,大量内容来自菜鸟教程(地址:1.0 十大经典排序算法 | 菜鸟教程) 排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大…

Java——类与对象

目录 一、面向对象的初步认识 1.1 什么是面向对象 1.2 面向对象与面向过程 二、类的定义与使用 2.1 简单认识类 2.2 类的定义格式 三、类的实例化 3.1 什么是实例化 3.2 类和对象的说明 四、this引用 4.1 为什么要有this引用 4.2 什么是this引用 ​编辑 4.3 this引用…

Google console 带包 号

https://play.google.com/store/apps/details?idcom.winmoney.moneyincome 懂的 来tg goomoni

【redis】Redis五种常用数据类型和内部编码,以及对String字符串类型的总结

˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如…

在线教程|图灵奖得主Yann LeCun盛赞!小红书开源InstantID,一张原图即可定制多种风格写真

不久前,一群来自小红书的 95 后工程师联合北大团队发布了开源项目「InstantID」,只需上传一张照片,这款 AI 写真神器就能轻松定制多种风格的 AI 写真,告别繁琐修图。 InstantID 一经发布就引起了广泛关注,GitHub 收藏量…

【LeetCode算法】28. 找出字符串中第一个匹配项的下标

提示:此文章仅作为本人记录日常学习使用,若有存在错误或者不严谨得地方欢迎指正。 文章目录 一、题目二、思路三、解决方案四、JAVA截取字符串的常用方法4.1 通过subString()截取字符串* 一、题目 给你两个字符串 haystack 和 needle ,请你在…

如果通过Glide 设置图片圆角

要给图片设置一个圆角,通常方法是在ImageView 标签外添加一个CardView 标签,然后设置圆角值,但是今天遇到一个问题就是 RecyclerView Item 中这样操作的话会遇到这样的一个报错: Cannot call this method while RecyclerView is computing a layout or scrolling androidx.rec…

web前端之sass中的颜色函数、active按钮激活、hover鼠标悬浮、disabled禁用、scss循环、css

MENU 效果图htmlsassscss编译后的css页面css 效果图 注意查看蓝色按钮。 html <div class"box"><button class"btn type_1">按钮</button><button class"btn type_2">按钮</button><button class"btn ty…

「TypeScript」TypeScript入门练手题

前言 TypeScript 越来越火&#xff0c;现在很多前端团队都使用它&#xff0c;因此咱们前端码农要想胜任以后的前端工作&#xff0c;就要更加熟悉它。 入门练手题 interface A {x: number;y: number; }type T Partial<A>;const a: T { x: 0, y: 0 }; const b: T { …

专题六_模拟(3)

目录 1419. 数青蛙 解析 题解 1419. 数青蛙 1419. 数青蛙 - 力扣&#xff08;LeetCode&#xff09; 解析 题解 class Solution { public:int minNumberOfFrogs(string croakOfFrogs) {// 44.专题六_模拟_数青蛙_Cstring t "croak";int n t.size();vector<in…