每日学习总结20240308

每日总结

20240305

常用控件

  1. QPushButton(按钮):用于触发操作或响应用户点击事件。
  2. QLabel(标签):用于显示文本或图像。
  3. QLineEdit(行编辑器):单行文本输入框,用于接收用户输入的文本。
  4. QTextEdit(文本编辑器):多行文本输入框,用于接收用户输入的多行文本。
  5. QComboBox(组合框):下拉列表框,用于从预定义的选项中选择一个。
  6. QCheckBox(复选框):用于表示两种状态之一的复选框。
  7. QRadioButton(单选按钮):用于从多个互斥选项中选择一个的单选按钮。
  8. QSpinBox(数值调节框):用于增加或减少数值的微调框。
  9. QSlider(滑块):用于通过滑动来选择数值的滑块控件。
  10. QProgressBar(进度条):用于表示任务的完成进度。
  11. QGroupBox(分组框):用于将相关控件组合在一起并将其分组显示。
  12. QTabWidget(选项卡窗口):用于在多个页面之间进行切换的选项卡控件。
  13. QListWidget(列表框):用于显示项目列表,并允许用户选择其中一个或多个项目。
  14. QTreeWidget(树形列表框):用于以树形结构显示项目列表的控件。
  15. QMenuBar/QMenu/QAction(菜单栏/菜单/菜单项):用于创建应用程序的菜单和子菜单。

1.MainWindow

在Qt中,MainWindow通常是应用程序的主窗口,是用户与应用程序进行交互的主要界面。下面是MainWindow的十个常用用法:

  1. 创建MainWindow对象
MainWindow w;

创建一个MainWindow对象,通常在应用程序的入口处创建,作为应用程序的主窗口。

  1. 设置窗口标题
w.setWindowTitle("My Application");

设置MainWindow的标题,显示在窗口的标题栏上。

  1. 设置窗口尺寸
w.resize(800, 600);

设置MainWindow的初始尺寸,即窗口的宽度和高度。

  1. 显示窗口
w.show();

显示MainWindow窗口,使其可见。

  1. 设置中心部件
QWidget *centralWidget = new QWidget(&w);
w.setCentralWidget(centralWidget);

设置MainWindow的中心部件,中心部件是MainWindow中放置其他控件的区域。

  1. 添加菜单栏
QMenuBar *menuBar = w.menuBar();
QMenu *fileMenu = menuBar->addMenu("&File");

添加一个菜单栏,并在菜单栏上添加一个菜单。

  1. 添加工具栏
QToolBar *toolBar = w.addToolBar("File");

添加一个工具栏,可以在工具栏上放置各种工具按钮。

  1. 添加状态栏
QStatusBar *statusBar = w.statusBar();
statusBar->showMessage("Ready");

添加一个状态栏,用于显示应用程序的状态信息。

  1. 连接信号与槽
QObject::connect(actionOpen, &QAction::triggered, this, &MainWindow::openFile);

连接菜单项或工具栏按钮的信号与槽,实现用户操作与应用程序逻辑的关联。

  1. 关闭窗口
w.close();

关闭MainWindow窗口,隐藏并释放MainWindow对象的资源。

这些是MainWindow对象的一些常用用法,可以根据具体需求进行调整和扩展。

2.QPushbutton

QPushButton 是 Qt 中常用的按钮控件,用于触发用户交互操作。以下是 QPushButton 的十个常用用法:

  1. 创建按钮
QPushButton *button = new QPushButton("Click me");

创建一个按钮对象,并设置按钮上显示的文本为 “Click me”。

  1. 设置按钮文本
button->setText("Press here");

修改按钮上显示的文本为 “Press here”。

  1. 设置按钮图标
button->setIcon(QIcon("icon.png"));

设置按钮上显示的图标,可以是一个 QIcon 对象或者图片文件路径。

  1. 设置按钮尺寸
button->setFixedSize(100, 50);

设置按钮的固定尺寸为 100x50 像素,这样按钮的大小将不受内容的影响而固定。

  1. 设置按钮样式
button->setStyleSheet("background-color: blue; color: white;");

通过样式表设置按钮的外观,可以设置背景色、文本颜色、边框样式等。

  1. 设置按钮状态
button->setEnabled(false);

禁用按钮,使其不响应用户的点击操作。

  1. 连接按钮的点击信号
connect(button, &QPushButton::clicked, this, &MainWindow::buttonClicked);

连接按钮的 clicked 信号与槽函数,当用户点击按钮时,执行槽函数中的逻辑。

  1. 设置按钮工具提示
button->setToolTip("This is a button");

设置按钮的工具提示,当鼠标悬停在按钮上时显示的文本。

  1. 设置按钮默认状态
button->setDefault(true);

设置按钮为默认按钮,当用户按下 Enter 键时,将模拟点击此按钮。

  1. 设置按钮焦点策略
button->setFocusPolicy(Qt::StrongFocus);

设置按钮的焦点策略,确定按钮在使用 Tab 键切换焦点时的行为。

这些是 QPushButton 的常用用法,可以根据具体需求对按钮进行更多的定制和扩展。

3. layout

布局(Layout)在Qt中用于管理窗口中的控件的位置和大小,使得窗口能够在不同尺寸的设备上自适应地进行布局。下面是布局(Layout)最常用的十个用法:

  1. 创建布局对象
QVBoxLayout *layout = new QVBoxLayout;

创建一个垂直布局(QVBoxLayout)对象,也可以创建水平布局(QHBoxLayout)或网格布局(QGridLayout)对象。

  1. 将控件添加到布局中
layout->addWidget(widget);

将一个控件(如QPushButton、QLabel等)添加到布局中。

  1. 设置布局的间距
layout->setSpacing(10);

设置布局中控件之间的间距。

  1. 设置布局的边距
layout->setContentsMargins(10, 10, 10, 10);

设置布局与窗口边缘的边距。

  1. 设置布局对齐方式
layout->setAlignment(Qt::AlignCenter);

设置布局中控件的对齐方式,如居中对齐、左对齐、右对齐等。

  1. 将布局设置为窗口的布局管理器
QWidget *window = new QWidget;
window->setLayout(layout);

将布局设置为窗口的布局管理器,使得布局能够管理窗口中的控件。

  1. 设置控件的大小策略
widget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);

设置控件在布局中的大小策略,如固定大小、自动大小、按比例扩展等。

  1. 清空布局中的控件
layout->removeWidget(widget);
delete widget;

从布局中移除控件并释放内存。

  1. 插入一个空白控件
layout->addSpacerItem(new QSpacerItem(10, 10));

在布局中插入一个空白控件,用于调整布局中控件的位置。

  1. 动态调整布局
layout->invalidate();

在布局中控件发生变化时,调用该方法使布局重新计算控件的位置和大小。

这些是布局最常用的十个用法,通过合理使用布局,可以方便地实现窗口中控件的排列和布局管理。

4. label

Label(标签)是Qt中用于显示文本或图像的控件,下面是Label最常用的十个用法:

  1. 创建Label对象
QLabel *label = new QLabel("Hello, World!");

创建一个Label对象,并设置其显示的文本内容为"Hello, World!"。

  1. 设置文本
label->setText("New Text");

设置Label显示的文本内容为"New Text"。

  1. 设置字体
label->setFont(QFont("Arial", 12));

设置Label显示文本的字体和字号。

  1. 设置文本对齐方式
label->setAlignment(Qt::AlignCenter);

设置Label显示文本的对齐方式,如居中对齐、左对齐、右对齐等。

  1. 设置文本颜色
label->setStyleSheet("color: red");

设置Label显示文本的颜色,可以使用CSS样式。

  1. 设置文本是否自动换行
label->setWordWrap(true);

设置Label显示的文本是否自动换行。

  1. 设置图片
label->setPixmap(QPixmap("image.png"));

设置Label显示的图片,可以是文件路径或者QPixmap对象。

  1. 设置图片缩放
label->setScaledContents(true);

设置Label显示的图片是否自动缩放以适应Label的大小。

  1. 设置鼠标提示
label->setToolTip("This is a label");

设置Label的鼠标提示,鼠标悬停在Label上时显示的文本。

  1. 设置文本是否可选中
label->setTextInteractionFlags(Qt::TextSelectableByMouse);

设置Label中的文本是否可以被鼠标选中。

这些是Label最常用的十个用法,通过合理使用Label控件,可以方便地在Qt应用程序中显示文本和图像。

5. QLineEdit

QLineEdit 是 Qt 中用于输入单行文本的小部件,它提供了很多方便的功能来处理用户输入。以下是十种常用的 QLineEdit 用法:

  1. 文本输入: 最基本的用法是允许用户输入文本。你可以直接在 QLineEdit 对象上调用 setText() 方法设置初始文本,或者使用 text() 方法获取用户输入的文本。

    // 设置初始文本
    QLineEdit *lineEdit = new QLineEdit(this);
    lineEdit->setText("初始文本");// 获取用户输入的文本
    QString text = lineEdit->text();
    
  2. 密码输入: 使用 setEchoMode() 方法将 QLineEdit 设置为密码模式,这样用户输入的文本将被隐藏。

    QLineEdit *passwordEdit = new QLineEdit(this);
    passwordEdit->setEchoMode(QLineEdit::Password);
    
  3. 只读模式: 通过设置 QLineEdit 的只读属性,可以禁止用户编辑文本,但仍然可以复制和选择文本。

    QLineEdit *readOnlyEdit = new QLineEdit(this);
    readOnlyEdit->setReadOnly(true);
    
  4. 校验器: 使用校验器来限制用户输入的内容。例如,你可以使用 setValidator() 方法设置一个正则表达式校验器,只允许用户输入数字。

    QIntValidator *validator = new QIntValidator(0, 100, this);
    QLineEdit *numericEdit = new QLineEdit(this);
    numericEdit->setValidator(validator);
    
  5. 提示文本: 设置一个提示文本,当用户未输入任何内容时,提示文本会显示在 QLineEdit 中。

    QLineEdit *hintEdit = new QLineEdit(this);
    hintEdit->setPlaceholderText("请输入文本");
    
  6. 事件处理: 通过重写 QLineEdit 的事件处理函数,你可以处理键盘事件、鼠标事件等。

    void MyLineEdit::keyPressEvent(QKeyEvent *event) {if (event->key() == Qt::Key_Enter || event->key() == Qt::Key_Return) {// 处理回车事件} else {QLineEdit::keyPressEvent(event);}
    }
    
  7. 信号和槽连接: 使用信号和槽机制,可以在用户输入文本时触发相应的操作。

    connect(lineEdit, &QLineEdit::textChanged, [=](const QString &text) {// 处理文本变化
    });
    
  8. 自动补全: 使用自动补全功能,当用户输入时,根据已有的选项进行提示。

    QStringList options = {"Option1", "Option2", "Option3"};
    QCompleter *completer = new QCompleter(options, this);
    QLineEdit *autoCompleteEdit = new QLineEdit(this);
    autoCompleteEdit->setCompleter(completer);
    
  9. 拖放操作: 通过设置拖放属性,可以实现从其他应用程序或者内部的拖放文本到 QLineEdit。

    QLineEdit *dragDropEdit = new QLineEdit(this);
    dragDropEdit->setAcceptDrops(true);
    
  10. 文本选择: 使用 selectAll() 方法可以选择整个文本,使用 setSelection() 方法可以选择部分文本。

    lineEdit->selectAll(); // 选择整个文本
    lineEdit->setSelection(startPos, endPos); // 选择部分文本
    

这些是 QLineEdit 的一些常见用法,你可以根据自己的需求选择适合的方法。

6. QComboBox

QComboBox 是 Qt 中常用的组合框控件,它允许用户从预定义的选项中选择一个值。以下是 QComboBox 的十种常用用法:

  1. 添加和移除选项:使用 addItem() 方法可以向组合框添加选项,使用 removeItem() 方法可以移除选项。
QComboBox *comboBox = new QComboBox(parent);
comboBox->addItem("Option 1");
comboBox->addItem("Option 2");
comboBox->removeItem(1); // Removes "Option 2"
  1. 清空所有选项:使用 clear() 方法可以清空组合框中的所有选项。
comboBox->clear();
  1. 设置默认选中项:使用 setCurrentIndex() 方法可以设置组合框的默认选中项。
comboBox->setCurrentIndex(0); // Sets the first item as default
  1. 获取当前选中项的文本和索引:使用 currentText() 方法可以获取当前选中项的文本,使用 currentIndex() 方法可以获取当前选中项的索引。
QString selectedText = comboBox->currentText();
int selectedIndex = comboBox->currentIndex();
  1. 根据索引设置选中项:使用 setCurrentIndex() 方法可以根据索引设置选中项。
comboBox->setCurrentIndex(1); // Sets the second item as selected
  1. 根据文本设置选中项:使用 setCurrentText() 方法可以根据文本设置选中项。
comboBox->setCurrentText("Option 2"); // Sets "Option 2" as selected
  1. 监听选项的选择变化:使用 currentIndexChanged 信号可以监听选项的选择变化。
connect(comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(onComboBoxIndexChanged(int)));
  1. 自定义选项显示:使用 setItemText() 方法可以自定义选项的显示文本。
comboBox->addItem("Option 1", QVariant(1));
comboBox->setItemText(0, "Custom Option 1");
  1. 自定义下拉列表显示:使用 setView() 方法可以自定义下拉列表的显示方式,比如设置成树状结构或者表格结构。
QTreeView *treeView = new QTreeView();
comboBox->setView(treeView);
  1. 启用和禁用组合框:使用 setEnabled() 方法可以启用或禁用组合框。
comboBox->setEnabled(false); // Disables the combo box

这些是 QComboBox 的一些常见用法,根据实际需求,你可以灵活运用这些方法来实现各种功能。

7. QCheckBox

QCheckBox 是 Qt 中常用的复选框控件,它允许用户在多个选项中选择一个或多个。以下是 QCheckBox 的十种常用用法:

  1. 创建并添加到布局:使用 new 关键字创建 QCheckBox 对象,并将其添加到布局中。
QCheckBox *checkBox = new QCheckBox("Option 1", parent);
layout->addWidget(checkBox);
  1. 设置默认选中状态:使用 setChecked() 方法可以设置复选框的默认选中状态。
checkBox->setChecked(true); // Sets the checkbox checked by default
  1. 获取当前选中状态:使用 isChecked() 方法可以获取复选框的当前选中状态。
bool isChecked = checkBox->isChecked();
  1. 设置文本:使用 setText() 方法可以设置复选框的文本。
checkBox->setText("Option 1");
  1. 监听选中状态变化:使用 stateChanged 信号可以监听复选框的选中状态变化。
connect(checkBox, SIGNAL(stateChanged(int)), this, SLOT(onCheckBoxStateChanged(int)));
  1. 自定义样式:使用 setStyleSheet() 方法可以自定义复选框的样式。
checkBox->setStyleSheet("QCheckBox { color: red; }");
  1. 设置三态复选框:使用 setTristate() 方法可以设置复选框为三态模式,允许选中、未选中和半选中三种状态。
checkBox->setTristate(true);
  1. 获取三态复选框的状态:使用 checkState() 方法可以获取三态复选框的当前状态。
Qt::CheckState state = checkBox->checkState();
  1. 启用和禁用复选框:使用 setEnabled() 方法可以启用或禁用复选框。
checkBox->setEnabled(false); // Disables the checkbox
  1. 关联多个复选框:使用 setCheckable() 方法可以将多个复选框关联在一起,使它们只能选择其中一个。
checkBox->setCheckable(true);

这些是 QCheckBox 的一些常见用法,根据实际需求,你可以灵活运用这些方法来实现各种功能。

8. QRadioButton

QRadioButton 是 Qt 中常用的单选按钮控件,它允许用户在多个选项中选择一个。以下是 QRadioButton 的十种常用用法:

  1. 创建并添加到布局:使用 new 关键字创建 QRadioButton 对象,并将其添加到布局中。
QRadioButton *radioButton1 = new QRadioButton("Option 1", parent);
QRadioButton *radioButton2 = new QRadioButton("Option 2", parent);
layout->addWidget(radioButton1);
layout->addWidget(radioButton2);
  1. 设置默认选中状态:使用 setChecked() 方法可以设置单选按钮的默认选中状态。
radioButton1->setChecked(true); // Sets the radio button checked by default
  1. 获取当前选中状态:使用 isChecked() 方法可以获取单选按钮的当前选中状态。
bool isChecked = radioButton1->isChecked();
  1. 设置文本:使用 setText() 方法可以设置单选按钮的文本。
radioButton1->setText("Option 1");
  1. 监听选中状态变化:使用 toggled 信号可以监听单选按钮的选中状态变化。
connect(radioButton1, SIGNAL(toggled(bool)), this, SLOT(onRadioButtonToggled(bool)));
  1. 设置自动互斥:使用 setAutoExclusive() 方法可以设置单选按钮为自动互斥模式,确保在同一个组中只能选中一个按钮。
radioButton1->setAutoExclusive(true);
radioButton2->setAutoExclusive(true);
  1. 设置图标:使用 setIcon() 方法可以设置单选按钮的图标。
radioButton1->setIcon(QIcon(":/icons/icon.png"));
  1. 设置样式表:使用 setStyleSheet() 方法可以设置单选按钮的样式。
radioButton1->setStyleSheet("QRadioButton { color: red; }");
  1. 设置三态按钮:使用 setTristate() 方法可以设置单选按钮为三态模式,允许选中、未选中和半选中三种状态。
radioButton1->setTristate(true);
  1. 获取三态按钮的状态:使用 checkState() 方法可以获取三态按钮的当前状态。
Qt::CheckState state = radioButton1->checkState();

这些是 QRadioButton 的一些常见用法,根据实际需求,你可以灵活运用这些方法来实现各种功能。

9. QSpinBox

QSpinBox 是 Qt 中常用的数字输入框控件,它允许用户在预定义的范围内选择一个整数值。以下是 QSpinBox 的十种常用用法:

  1. 创建并添加到布局:使用 new 关键字创建 QSpinBox 对象,并将其添加到布局中。
QSpinBox *spinBox = new QSpinBox(parent);
layout->addWidget(spinBox);
  1. 设置范围:使用 setRange() 方法可以设置 QSpinBox 的取值范围。
spinBox->setRange(0, 100); // Sets the range from 0 to 100
  1. 设置默认值:使用 setValue() 方法可以设置 QSpinBox 的默认值。
spinBox->setValue(50); // Sets the default value to 50
  1. 获取当前值:使用 value() 方法可以获取 QSpinBox 的当前值。
int value = spinBox->value();
  1. 监听值变化:使用 valueChanged 信号可以监听 QSpinBox 的值变化。
connect(spinBox, SIGNAL(valueChanged(int)), this, SLOT(onSpinBoxValueChanged(int)));
  1. 设置步长:使用 setSingleStep() 方法可以设置 QSpinBox 的步长。
spinBox->setSingleStep(5); // Sets the step size to 5
  1. 设置特定值:使用 setValue() 方法可以设置 QSpinBox 的当前值为特定值。
spinBox->setValue(10); // Sets the value to 10
  1. 设置特定文本:使用 setSuffix() 方法可以设置 QSpinBox 显示的文本后缀。
spinBox->setSuffix(" km/h"); // Sets the suffix to " km/h"
  1. 设置特定样式:使用 setStyleSheet() 方法可以设置 QSpinBox 的样式。
spinBox->setStyleSheet("QSpinBox { background-color: yellow; }");
  1. 启用和禁用:使用 setEnabled() 方法可以启用或禁用 QSpinBox。
spinBox->setEnabled(false); // Disables the spin box

这些是 QSpinBox 的一些常见用法,根据实际需求,你可以灵活运用这些方法来实现各种功能。

10.QSlider

QSlider 是 Qt 中常用的滑动条控件,它允许用户在预定义的范围内选择一个值。以下是 QSlider 的十种常用用法:

  1. 创建并添加到布局:使用 new 关键字创建 QSlider 对象,并将其添加到布局中。
QSlider *slider = new QSlider(Qt::Horizontal, parent); // 水平滑动条
layout->addWidget(slider);
QSlider *slider = new QSlider(Qt::Vertical, parent); // 垂直滑动条
layout->addWidget(slider);
  1. 设置范围:使用 setRange() 方法可以设置 QSlider 的取值范围。
slider->setRange(0, 100); // 设置范围为 0 到 100
  1. 设置默认值:使用 setValue() 方法可以设置 QSlider 的默认值。
slider->setValue(50); // 设置默认值为 50
  1. 获取当前值:使用 value() 方法可以获取 QSlider 的当前值。
int value = slider->value();
  1. 监听值变化:使用 valueChanged 信号可以监听 QSlider 的值变化。
connect(slider, SIGNAL(valueChanged(int)), this, SLOT(onSliderValueChanged(int)));
  1. 设置步长:使用 setSingleStep() 方法可以设置 QSlider 的步长。
slider->setSingleStep(5); // 设置步长为 5
  1. 设置滑块位置:使用 setSliderPosition() 方法可以设置滑块的当前位置。
slider->setSliderPosition(30); // 设置滑块位置为 30
  1. 设置特定样式:使用 setStyleSheet() 方法可以设置 QSlider 的样式。
slider->setStyleSheet("QSlider::handle { background-color: red; }");
  1. 设置刻度显示:使用 setTickPosition() 方法可以设置刻度的位置。
slider->setTickPosition(QSlider::TicksBelow); // 设置刻度在下方显示
  1. 启用和禁用:使用 setEnabled() 方法可以启用或禁用 QSlider。
slider->setEnabled(false); // 禁用滑动条

这些是 QSlider 的一些常见用法,根据实际需求,你可以灵活运用这些方法来实现各种功能。

11.QProgressBar

QProgressBar 是 Qt 中常用的进度条控件,用于显示任务的完成进度。以下是 QProgressBar 的十种常用用法:

  1. 创建并添加到布局:使用 new 关键字创建 QProgressBar 对象,并将其添加到布局中。
QProgressBar *progressBar = new QProgressBar(parent);
layout->addWidget(progressBar);
  1. 设置范围:使用 setRange() 方法可以设置 QProgressBar 的取值范围。
progressBar->setRange(0, 100); // 设置范围为 0 到 100
  1. 设置当前值:使用 setValue() 方法可以设置 QProgressBar 的当前值。
progressBar->setValue(50); // 设置当前值为 50
  1. 获取当前值:使用 value() 方法可以获取 QProgressBar 的当前值。
int value = progressBar->value();
  1. 设置显示文本:使用 setFormat() 方法可以设置 QProgressBar 显示的文本格式。
progressBar->setFormat("Progress: %p%"); // 设置显示格式为百分比
  1. 设置特定样式:使用 setStyleSheet() 方法可以设置 QProgressBar 的样式。
progressBar->setStyleSheet("QProgressBar { background-color: yellow; }");
  1. 监听值变化:通常情况下,QProgressBar 不需要监听值变化,因为它是由程序控制的。

  2. 显示/隐藏:使用 setVisible() 方法可以显示或隐藏 QProgressBar。

progressBar->setVisible(true); // 显示进度条
  1. 启用和禁用:使用 setEnabled() 方法可以启用或禁用 QProgressBar。
progressBar->setEnabled(false); // 禁用进度条
  1. 设置方向:使用 setOrientation() 方法可以设置 QProgressBar 的方向。
progressBar->setOrientation(Qt::Vertical); // 设置进度条为垂直方向

这些是 QProgressBar 的一些常见用法,根据实际需求,你可以灵活运用这些方法来实现各种功能。

12. QGroupBox

QGroupBox 是 Qt 中常用的分组框控件,用于将一组相关的控件放在一个框中,以便于组织和管理。以下是 QGroupBox 的十种常用用法:

  1. 创建并添加到布局:使用 new 关键字创建 QGroupBox 对象,并将其添加到布局中。
QGroupBox *groupBox = new QGroupBox("Options", parent);
layout->addWidget(groupBox);
  1. 设置标题:使用构造函数或 setTitle() 方法可以设置 QGroupBox 的标题。
QGroupBox *groupBox = new QGroupBox("Options", parent);

或者:

groupBox->setTitle("Options");
  1. 添加控件:使用布局管理器向 QGroupBox 中添加控件。
QVBoxLayout *groupBoxLayout = new QVBoxLayout;
groupBoxLayout->addWidget(new QPushButton("Button 1"));
groupBoxLayout->addWidget(new QPushButton("Button 2"));
groupBox->setLayout(groupBoxLayout);
  1. 设置样式:使用 setStyleSheet() 方法可以设置 QGroupBox 的样式。
groupBox->setStyleSheet("QGroupBox { background-color: yellow; }");
  1. 设置边框:使用 setFlat() 方法可以设置 QGroupBox 的边框是否显示。
groupBox->setFlat(true); // 隐藏边框
  1. 启用和禁用:使用 setEnabled() 方法可以启用或禁用 QGroupBox。
groupBox->setEnabled(false); // 禁用 QGroupBox
  1. 设置对齐方式:使用 setAlignment() 方法可以设置 QGroupBox 中的控件的对齐方式。
groupBox->setAlignment(Qt::AlignCenter); // 设置控件居中对齐
  1. 设置标题对齐方式:使用 setTitleAlignment() 方法可以设置 QGroupBox 标题的对齐方式。
groupBox->setTitleAlignment(Qt::AlignCenter); // 设置标题居中对齐
  1. 设置平铺布局:使用 setFlatLayout() 方法可以设置 QGroupBox 中的控件以平铺方式布局。
groupBox->setFlatLayout(true); // 设置控件以平铺方式布局
  1. 监听状态变化:通常情况下,QGroupBox 不需要监听状态变化,因为它通常是由用户交互而改变的。

这些是 QGroupBox 的一些常见用法,根据实际需求,你可以灵活运用这些方法来实现各种功能。

13. QTabWidget

QTabWidget 是 Qt 中常用的选项卡控件,用于在同一窗口中显示多个选项卡页面。以下是 QTabWidget 的十种常用用法:

  1. 创建并添加到布局:使用 new 关键字创建 QTabWidget 对象,并将其添加到布局中。
QTabWidget *tabWidget = new QTabWidget(parent);
layout->addWidget(tabWidget);
  1. 添加选项卡页:使用 addTab() 方法可以添加选项卡页面,并设置标题和页面内容。
QWidget *page1 = new QWidget;
tabWidget->addTab(page1, "Page 1");QWidget *page2 = new QWidget;
tabWidget->addTab(page2, "Page 2");
  1. 移除选项卡页:使用 removeTab() 方法可以移除选项卡页面。
tabWidget->removeTab(index); // 移除指定索引的选项卡页
  1. 设置当前页:使用 setCurrentIndex() 方法可以设置当前显示的选项卡页面。
tabWidget->setCurrentIndex(index); // 设置当前显示的选项卡页为指定索引
  1. 获取当前页索引:使用 currentIndex() 方法可以获取当前显示的选项卡页面的索引。
int currentIndex = tabWidget->currentIndex();
  1. 设置选项卡位置:使用 setTabPosition() 方法可以设置选项卡的位置。
tabWidget->setTabPosition(QTabWidget::North); // 设置选项卡在顶部显示
  1. 设置样式:使用 setStyleSheet() 方法可以设置 QTabWidget 的样式。
tabWidget->setStyleSheet("QTabWidget::tab { background-color: yellow; }");
  1. 监听选项卡变化:使用 currentChanged 信号可以监听选项卡的变化。
connect(tabWidget, SIGNAL(currentChanged(int)), this, SLOT(onTabChanged(int)));
  1. 启用和禁用:使用 setEnabled() 方法可以启用或禁用 QTabWidget。
tabWidget->setEnabled(false); // 禁用选项卡控件
  1. 设置自定义图标:使用 setTabIcon() 方法可以为选项卡设置自定义图标。
tabWidget->setTabIcon(index, icon); // 为指定索引的选项卡设置图标

这些是 QTabWidget 的一些常见用法,根据实际需求,你可以灵活运用这些方法来实现各种功能。

14. QListWidget

QListWidget 是 Qt 中常用的列表控件,用于显示一个可滚动的项目列表。以下是 QListWidget 的十种常用用法:

  1. 创建并添加到布局:使用 new 关键字创建 QListWidget 对象,并将其添加到布局中。
QListWidget *listWidget = new QListWidget(parent);
layout->addWidget(listWidget);
  1. 添加列表项:使用 addItem() 方法可以向 QListWidget 中添加列表项。
listWidget->addItem("Item 1");
listWidget->addItem("Item 2");
  1. 设置单选模式:使用 setSelectionMode() 方法可以设置列表的选择模式为单选。
listWidget->setSelectionMode(QAbstractItemView::SingleSelection);
  1. 设置多选模式:使用 setSelectionMode() 方法可以设置列表的选择模式为多选。
listWidget->setSelectionMode(QAbstractItemView::MultiSelection);
  1. 获取选中项:使用 selectedItems() 方法可以获取当前选中的项。
QList<QListWidgetItem*> selectedItems = listWidget->selectedItems();
  1. 清空所有项:使用 clear() 方法可以清空列表中的所有项。
listWidget->clear();
  1. 设置自定义项:使用 setItemWidget() 方法可以为列表中的项设置自定义控件。
QWidget *customWidget = new QWidget;
QPushButton *button = new QPushButton("Click Me", customWidget);
listWidget->setItemWidget(item, customWidget);
  1. 获取当前项:使用 currentItem() 方法可以获取当前选中的项。
QListWidgetItem *currentItem = listWidget->currentItem();
  1. 启用和禁用:使用 setEnabled() 方法可以启用或禁用 QListWidget。
listWidget->setEnabled(false); // 禁用列表控件
  1. 监听项选择变化:使用 itemSelectionChanged 信号可以监听列表项的选择变化。
connect(listWidget, SIGNAL(itemSelectionChanged()), this, SLOT(onItemSelectionChanged()));

这些是 QListWidget 的一些常见用法,根据实际需求,你可以灵活运用这些方法来实现各种功能。

15.QTreeWidget

QTreeWidget 是 Qt 中常用的树形控件,用于显示树形结构的数据。以下是 QTreeWidget 的十种常用用法,并提供一个综合示例:

  1. 创建并添加到布局:使用 new 关键字创建 QTreeWidget 对象,并将其添加到布局中。
QTreeWidget *treeWidget = new QTreeWidget(parent);
layout->addWidget(treeWidget);
  1. 设置列数:使用 setColumnCount() 方法可以设置树控件的列数。
treeWidget->setColumnCount(3); // 设置树控件有3列
  1. 添加树节点:使用 addTopLevelItem() 方法可以添加顶层树节点。
QTreeWidgetItem *topItem = new QTreeWidgetItem(treeWidget);
topItem->setText(0, "Top Level Item");
  1. 添加子节点:使用 addChild() 方法可以添加子节点。
QTreeWidgetItem *childItem = new QTreeWidgetItem(topItem);
childItem->setText(0, "Child Item");
  1. 设置节点文本:使用 setText() 方法可以设置节点的文本。
topItem->setText(1, "Data 1");
childItem->setText(1, "Data 2");
  1. 设置节点图标:使用 setIcon() 方法可以设置节点的图标。
topItem->setIcon(0, QIcon(":/icons/folder.png"));
childItem->setIcon(0, QIcon(":/icons/file.png"));
  1. 展开和折叠节点:使用 expandItem()collapseItem() 方法可以展开和折叠节点。
treeWidget->expandItem(topItem); // 展开节点
treeWidget->collapseItem(topItem); // 折叠节点
  1. 获取当前选中的节点:使用 currentItem() 方法可以获取当前选中的节点。
QTreeWidgetItem *currentItem = treeWidget->currentItem();
  1. 启用和禁用:使用 setEnabled() 方法可以启用或禁用 QTreeWidget。
treeWidget->setEnabled(false); // 禁用树控件
  1. 监听节点选择变化:使用 itemSelectionChanged 信号可以监听节点的选择变化。
connect(treeWidget, SIGNAL(itemSelectionChanged()), this, SLOT(onItemSelectionChanged()));

综合示例:

#include <QtWidgets>int main(int argc, char *argv[]) {QApplication app(argc, argv);// Create a tree widgetQTreeWidget treeWidget;treeWidget.setColumnCount(2);// Add top level itemsQTreeWidgetItem *topItem1 = new QTreeWidgetItem(&treeWidget);topItem1->setText(0, "Top Level Item 1");topItem1->setText(1, "Data 1");QTreeWidgetItem *topItem2 = new QTreeWidgetItem(&treeWidget);topItem2->setText(0, "Top Level Item 2");topItem2->setText(1, "Data 2");// Add child itemsQTreeWidgetItem *childItem1 = new QTreeWidgetItem(topItem1);childItem1->setText(0, "Child Item 1");childItem1->setText(1, "Data 3");QTreeWidgetItem *childItem2 = new QTreeWidgetItem(topItem2);childItem2->setText(0, "Child Item 2");childItem2->setText(1, "Data 4");// Show the tree widgettreeWidget.show();return app.exec();
}

这些是 QTreeWidget 的一些常见用法和一个综合示例。根据实际需求,你可以灵活运用这些方法来实现各种功能。

16.QMenuBar

QMenuBar 是 Qt 中用于创建菜单栏的控件,用于组织和管理程序的菜单。以下是 QMenuBar 的十种常用用法,并提供一个综合示例程序:

  1. 创建并添加到窗口:使用 new 关键字创建 QMenuBar 对象,并将其设置为窗口的菜单栏。
QMenuBar *menuBar = new QMenuBar(parent);
window->setMenuBar(menuBar);
  1. 添加菜单:使用 addMenu() 方法可以添加菜单到菜单栏。
QMenu *fileMenu = menuBar->addMenu("File");
  1. 添加菜单项:使用 addAction() 方法可以向菜单中添加菜单项。
fileMenu->addAction("Open");
fileMenu->addAction("Save");
  1. 添加子菜单:使用 addMenu() 方法可以向菜单中添加子菜单。
QMenu *editMenu = menuBar->addMenu("Edit");
QMenu *copySubMenu = editMenu->addMenu("Copy");
copySubMenu->addAction("Copy Text");
copySubMenu->addAction("Copy Image");
  1. 设置快捷键:使用 setShortcut() 方法可以为菜单项设置快捷键。
fileMenu->addAction("Open")->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_O));
  1. 添加分隔符:使用 addSeparator() 方法可以在菜单中添加分隔符。
fileMenu->addSeparator();
  1. 监听菜单项点击事件:使用 triggered 信号可以监听菜单项的点击事件。
connect(fileMenu, SIGNAL(triggered(QAction*)), this, SLOT(onFileMenuActionTriggered(QAction*)));
  1. 设置菜单项状态:使用 setEnabled() 方法可以设置菜单项的状态(启用/禁用)。
fileMenu->actions().at(0)->setEnabled(false); // 禁用第一个菜单项
  1. 添加工具栏:使用 addToolBar() 方法可以添加工具栏到菜单栏。
QToolBar *toolBar = new QToolBar("Toolbar", parent);
menuBar->addToolBar(toolBar);
  1. 设置样式:使用 setStyleSheet() 方法可以设置菜单栏的样式。
menuBar->setStyleSheet("background-color: lightgray;");

综合示例程序:

#include <QtWidgets>int main(int argc, char *argv[]) {QApplication app(argc, argv);// Create main windowQMainWindow window;// Create menu barQMenuBar *menuBar = new QMenuBar(&window);window.setMenuBar(menuBar);// Create file menuQMenu *fileMenu = menuBar->addMenu("File");fileMenu->addAction("Open");fileMenu->addAction("Save");// Create edit menuQMenu *editMenu = menuBar->addMenu("Edit");editMenu->addAction("Cut");editMenu->addAction("Copy");editMenu->addAction("Paste");// Create toolbarQToolBar *toolBar = new QToolBar("Toolbar", &window);menuBar->addToolBar(toolBar);// Show main windowwindow.resize(400, 300);window.show();return app.exec();
}

这些是 QMenuBar 的一些常见用法和一个综合示例程序。根据实际需求,你可以灵活运用这些方法来实现各种功能。

17.QMenu

QMenu 是 Qt 中常用的菜单控件,用于在应用程序中创建菜单。以下是 QMenu 的十种常用用法,并提供一个综合示例程序:

  1. 创建并添加到菜单栏:使用 new 关键字创建 QMenu 对象,并将其添加到菜单栏中。
QMenu *menu = new QMenu("File", menuBar);
menuBar->addMenu(menu);
  1. 添加菜单项:使用 addAction() 方法可以向菜单中添加菜单项。
menu->addAction("New");
menu->addAction("Open");
  1. 设置快捷键:使用 setShortcut() 方法可以为菜单项设置快捷键。
menu->addAction("Save")->setShortcut(QKeySequence::Save);
menu->addAction("Exit")->setShortcut(QKeySequence::Quit);
  1. 添加分隔符:使用 addSeparator() 方法可以在菜单中添加分隔符。
menu->addSeparator();
  1. 添加子菜单:使用 addMenu() 方法可以向菜单中添加子菜单。
QMenu *subMenu = new QMenu("Options", menu);
menu->addMenu(subMenu);
  1. 设置菜单项图标:使用 setIcon() 方法可以为菜单项设置图标。
menu->addAction("Cut")->setIcon(QIcon(":/icons/cut.png"));
  1. 菜单项的禁用和启用:使用 setEnabled() 方法可以禁用或启用菜单项。
menu->addAction("Paste")->setEnabled(false);
  1. 监听菜单项触发:使用 triggered 信号可以监听菜单项的触发。
connect(menu, SIGNAL(triggered(QAction*)), this, SLOT(onMenuActionTriggered(QAction*)));
  1. 设置菜单的样式:使用 setStyleSheet() 方法可以设置菜单的样式。
menu->setStyleSheet("QMenu { background-color: yellow; }");
  1. 设置菜单的上下文菜单:使用 setContextMenuPolicy() 方法可以设置菜单的上下文菜单策略。
widget->setContextMenuPolicy(Qt::CustomContextMenu);
connect(widget, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(onCustomContextMenu(const QPoint&)));

综合示例:

#include <QtWidgets>int main(int argc, char *argv[]) {QApplication app(argc, argv);// Create main windowQMainWindow mainWindow;QWidget *centralWidget = new QWidget;mainWindow.setCentralWidget(centralWidget);// Create menu barQMenuBar *menuBar = mainWindow.menuBar();// File menuQMenu *fileMenu = new QMenu("File", menuBar);menuBar->addMenu(fileMenu);fileMenu->addAction("New");fileMenu->addAction("Open");fileMenu->addAction("Save")->setShortcut(QKeySequence::Save);fileMenu->addSeparator();fileMenu->addAction("Exit")->setShortcut(QKeySequence::Quit);// Edit menuQMenu *editMenu = new QMenu("Edit", menuBar);menuBar->addMenu(editMenu);editMenu->addAction("Cut")->setIcon(QIcon(":/icons/cut.png"));editMenu->addAction("Copy")->setIcon(QIcon(":/icons/copy.png"));editMenu->addAction("Paste")->setEnabled(false);// Context menucentralWidget->setContextMenuPolicy(Qt::CustomContextMenu);connect(centralWidget, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(onCustomContextMenu(const QPoint&)));// Show the main windowmainWindow.show();return app.exec();
}

这些是 QMenu 的一些常见用法和一个综合示例程序。根据实际需求,你可以灵活运用这些方法来实现各种功能。

18. QAction

QAction 是 Qt 中用于表示用户操作的动作的类,通常与菜单、工具栏和快捷键相关联。以下是 QAction 的十种常用用法,并提供一个综合示例程序:

  1. 创建并添加到菜单:使用 new 关键字创建 QAction 对象,并将其添加到菜单中。
QAction *action = new QAction("Open", parent);
menu->addAction(action);
  1. 设置文本:使用 setText() 方法可以设置动作的显示文本。
action->setText("Open File");
  1. 设置图标:使用 setIcon() 方法可以为动作设置图标。
action->setIcon(QIcon(":/icons/open.png"));
  1. 设置快捷键:使用 setShortcut() 方法可以为动作设置快捷键。
action->setShortcut(QKeySequence::Open);
  1. 设置状态:使用 setEnabled() 方法可以设置动作的启用状态。
action->setEnabled(false); // 禁用动作
  1. 设置工具提示:使用 setToolTip() 方法可以设置动作的工具提示。
action->setToolTip("Open a file"); 
  1. 设置动作类型:使用 setCheckable() 方法可以设置动作为可选中的动作。
action->setCheckable(true); // 设置动作为可选中的动作
  1. 监听动作触发:使用 triggered 信号可以监听动作的触发。
connect(action, &QAction::triggered, this, &MainWindow::onActionTriggered);
  1. 动态添加子菜单:使用 addMenu() 方法可以向动作添加子菜单。
QMenu *subMenu = new QMenu("Options", parent);
action->setMenu(subMenu);
  1. 设置动作样式:使用 setStyleSheet() 方法可以设置动作的样式。
action->setStyleSheet("QAction { background-color: yellow; }");

综合示例:

#include <QtWidgets>int main(int argc, char *argv[]) {QApplication app(argc, argv);// Create main windowQMainWindow mainWindow;QWidget *centralWidget = new QWidget;mainWindow.setCentralWidget(centralWidget);// Create menu barQMenuBar *menuBar = mainWindow.menuBar();// File menuQMenu *fileMenu = new QMenu("File", menuBar);menuBar->addMenu(fileMenu);// Open actionQAction *openAction = new QAction("Open", fileMenu);openAction->setShortcut(QKeySequence::Open);fileMenu->addAction(openAction);// Save actionQAction *saveAction = new QAction("Save", fileMenu);saveAction->setShortcut(QKeySequence::Save);fileMenu->addAction(saveAction);// Edit menuQMenu *editMenu = new QMenu("Edit", menuBar);menuBar->addMenu(editMenu);// Cut actionQAction *cutAction = new QAction("Cut", editMenu);cutAction->setIcon(QIcon(":/icons/cut.png"));editMenu->addAction(cutAction);// Copy actionQAction *copyAction = new QAction("Copy", editMenu);copyAction->setIcon(QIcon(":/icons/copy.png"));editMenu->addAction(copyAction);// Show the main windowmainWindow.show();return app.exec();
}

这些是 QAction 的一些常见用法和一个综合示例程序。根据实际需求,你可以灵活运用这些方法来实现各种功能。
在这里插入图片描述

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

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

相关文章

华为OD机试真题-测试用例执行计划

测试用例执行计划 题目描述&#xff1a; 某个产品当前迭代周期内有N个特性({F1,F2,...,FN})需要进行覆盖测试&#xff0c;每个特性都被评估了对应的优先级&#xff0c;特性使用其ID作为下标进行标识。 设计了M个测试用例({T1,T2,...,TM})&#xff0c;每个用例对应了一个覆盖特…

48、兰州大学、青海师范:专门用于深度CNNs的天阶斗技-ELA Local Attention

本文由兰州大学信息科学与工程学院、青海省物联网重点实验室、青海师范大学于2024年3.2日发表于ArXiv。为了解决现有的注意力模型在有效利用空间信息方面存在的限制和困难&#xff0c;提出了一种高效的局部注意力ELA模型。该方法通过分析坐标注意力的局限性&#xff0c;作者识别…

项目解决方案:多地5G蓄能电站的视频监控联网系统设计方案

目 录 一、前言 二、系统架构设计 1、系统架构设计说明 2、系统拓扑图 三、关键技术 1. 5G支持技术 2. 视频图像处理技术 3. 数据融合与分析技术 四、功能特点 1. 高效可靠 2. 实时监测 3. 远程控制 4. 故障预测 五、应用前景 一、前言 随着能源…

C++泛型实现搜索二叉树

文章目录 二叉搜索树查找插入删除实现应用性能分析 二叉搜索树 二叉搜索树&#xff08;BST&#xff0c;Binary Search Tree&#xff09;又称为二叉排序树&#xff0c;空树也算 二叉搜索树有如下性质 若左子树不为空&#xff0c;则左子树上所有节点值小于根节点若右子树不为空…

2575. 找出字符串的可整除数组(Go语言)

https://leetcode.cn/problems/find-the-divisibility-array-of-a-string/ 在看题解之前&#xff0c;我的代码是以下这样&#xff1a; package mainimport ("fmt" )func main() {fmt.Println(divisibilityArray("998244353", 3)) }func divisibilityArray…

供应链管理系统(SCM):得供应链得天下不是空话。

2023-08-26 15:51贝格前端工场 Hi&#xff0c;我是贝格前端工场&#xff0c;优化升级各类管理系统的界面和体验&#xff0c;是我们核心业务之一&#xff0c;欢迎老铁们评论点赞互动&#xff0c;有需求可以私信我们 一、供应链对于企业的重要性 供应链对企业经营的重要性不可…

使用plasmo框架开发浏览器插件,注入contents脚本和给页面添加UI组件

plasmo&#xff1a;GitHub - PlasmoHQ/plasmo: &#x1f9e9; The Browser Extension Framework plasmo是一个开发浏览器插件的框架&#xff0c;支持使用react和vue等技术&#xff0c;而且不用手动管理manifest.json文件&#xff0c;框架会根据你在框架中的使用&#xff0c;自…

ChatGPT高效提问——角色提示

ChatGPT高效提问——角色提示 角色提示技巧是一种通过给模型提供具体的角色扮演&#xff0c;指导ChatGPT输出的方法。这个技巧对一个具体的上下文或者听众定制生成的文本很有用。 要使用角色提示技巧&#xff0c;你需要提供明确具体的模型扮演的角色。 例如&#xff0c;如果…

如何在Windows环境下编译OpenOCD

1. 安装Cygwin Windows环境下编译OpenOCD可以是在MinGW-w64/MSYS或Cygwin下&#xff0c;这里选择Cygwin&#xff0c;下载安装Cygwin。 2. 进入OpenOCD源代码目录 打开Cygwin&#xff0c;进入OpenOCD源代码目录&#xff0c;例如代码放在D:\Temp\OpenOCD\openocd-code下&#…

C++学习笔记:AVL树

AVL树 什么是AVL树?AVL树节点的定义AVL树的插入平衡因子调整旋转调整左旋转右旋转左右双旋右左双旋 AVL树完整代码实现 什么是AVL树? AVL是1962年,两位俄罗斯数学家G.M.Adelson-Velskii和E.M.Landis 为了解决如果数据有序或接近有序二叉搜索树将退化为单支树&#xff0c;查找…

限制员工上网行为,如何有效管控员工上网行为? 你一定想不到这个方法!

发现员工上班时间刷抖音&#xff1a; 面对这种情况&#xff0c;领导不得火冒三丈&#xff1f;&#xff1f;&#xff1f; 对于员工不恰当的上网行为&#xff0c;非常有可能导致工作效率低下、安全风险增加以及企业形象受损。 因此应该采取一些措施来对员工上网行为进行管理。 …

第三节:在Sashulin中自定义组件

上一节讲解了如何建立一个业务消息流&#xff0c;流程是由组件构成的。目前SMS提供了General、Database、MessageQueue、Socket、WebService、Http、Internet等系列常用组件&#xff0c;如果不满足业务需求&#xff0c;可以进行自定义组件开发。 一、组件开发 1、建立一个Jar…

C及C++每日练习(3)

选择题&#xff1a; 1.以下程序的输出结果是&#xff08;&#xff09; #include <stdio.h> main() { char a[10] {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}, *p; int i; i 8; p a i; printf("%s\n", p - 3); } A.6 B. 6789 C. 6 D.789 对于本题&#xff0…

吴恩达机器学习-可选实验室:特征工程和多项式回归(Feature Engineering and Polynomial Regression)

文章目录 目标工具特征工程和多项式回归概述多项式特征选择功能备用视图扩展功能复杂的功能 恭喜! 目标 在本实验中&#xff0c;你将:探索特征工程和多项式回归&#xff0c;它们允许您使用线性回归的机制来拟合非常复杂&#xff0c;甚至非常非线性的函数。 工具 您将利用在以…

2023最新pytorch安装教程,简单易懂,面向初学者(Anaconda+GPU)

一、前言 目前是2023.1.27,鉴于本人安装过程中踩得坑&#xff0c;安装之前我先给即将安装pytorch的各位提个醒&#xff0c;有以下几点需要注意 1.判断自己电脑是否有GPU 注意这点很重要&#xff0c;本教程面向有NVIDA显卡的电脑&#xff0c;如果你的电脑没有GPU或者使用AMD显…

STM32day3

1.思维导图 1.总结任务的调度算法&#xff0c;把实现代码再写一下 /* Definitions for myTask02 */ osThreadId_t myTask02Handle; uint32_t myTask02Buffer[ 64 ]; osStaticThreadDef_t myTask02ControlBlock; const osThreadAttr_t myTask02_attributes {.name "myTa…

代码随想录算法训练营第三十九天|62.不同路径、63. 不同路径 II

62.不同路径 刷题https://leetcode.cn/problems/unique-paths/description/文章讲解https://programmercarl.com/0062.%E4%B8%8D%E5%90%8C%E8%B7%AF%E5%BE%84.html视频讲解https://www.bilibili.com/video/BV1ve4y1x7Eu/?vd_sourceaf4853e80f89e28094a5fe1e220d9062 题解&…

react的diff源码

react 的 render 阶段&#xff0c;其中 begin 时会调用 reconcileChildren 函数&#xff0c; reconcileChildren 中做的事情就是 react 知名的 diff 过程 diff 算法介绍 react 的每次更新&#xff0c;都会将新的 ReactElement 内容与旧的 fiber 树作对比&#xff0c;比较出它们…

md5绕过

文章目录 \\和\\\md5数组绕过科学计数法绕过双md加密md5碰撞Hash长度攻击 下面会以同一道题给大家演示&#xff1a; (题目来源与nssctf) 和 在php代码中我们会看到和&#xff0c;虽然两个都是表示相等&#xff0c;但是在细节上会有所部区别 &#xff1a;是弱比较&#xff0c;只…

0201安装报错-hbase-大数据学习

1 基础环境简介 linux系统&#xff1a;centos&#xff0c;前置安装&#xff1a;jdk、hadoop、zookeeper&#xff0c;版本如下 软件版本描述centos7linux系统发行版jdk1.8java开发工具集hadoop2.10.0大数据生态基础组件zookeeper3.5.7分布式应用程序协调服务hbase2.4.11分布式…