国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【QT開發(fā)筆記-基礎(chǔ)篇】| 第二章 常用控件 | 2.12 表格控件 QTableWidget

這篇具有很好參考價值的文章主要介紹了【QT開發(fā)筆記-基礎(chǔ)篇】| 第二章 常用控件 | 2.12 表格控件 QTableWidget。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

本節(jié)對應(yīng)的視頻講解:B_站_鏈_接

【QT開發(fā)筆記-基礎(chǔ)篇】| 第二章 常用控件 | 2.12 表格控件 QTableWidget(1)

QTableWidgetQt 中的表格控件,可以行列的形式來展示數(shù)據(jù)

qt表格控件,《QT開發(fā)筆記-基礎(chǔ)篇》,qt,c++,linux,物聯(lián)網(wǎng),嵌入式硬件


1. 屬性和方法


QTableWidget 有很多屬性和方法,完整的可查看幫助文檔。

在窗口上放置一個 QTableWidget 控件后,既可以在設(shè)計師 UI 界面來編輯屬性和添加數(shù)據(jù),也可以在代碼中動態(tài)地設(shè)置

這里列出常用的屬性和方法


1.1 行列數(shù)目、行表頭、列表頭

表格控件的第一行稱為行表頭,用于設(shè)置每一列的標題

表格控件的第一列稱為列表頭,用于設(shè)置每一行的標題,通常缺省則默認顯示行號
qt表格控件,《QT開發(fā)筆記-基礎(chǔ)篇》,qt,c++,linux,物聯(lián)網(wǎng),嵌入式硬件

設(shè)置和獲取行列的數(shù)目

// 獲取/設(shè)置行的數(shù)目
int rowCount() const
void setRowCount(int rows)
  
// 獲取/設(shè)置列的數(shù)目    
int columnCount() const
void setColumnCount(int columns)

設(shè)置行列表頭

// 設(shè)置行表頭
void setHorizontalHeaderLabels(const QStringList &labels)

// 設(shè)置列表頭 - 通常不設(shè)置,則默認為行號
void setVerticalHeaderLabels(const QStringList &labels)

設(shè)置列的寬度

// 獲取行表頭
QHeaderView *horizontalHeader() const
 
// 設(shè)置列的寬度    
void QHeaderView::setSectionResizeMode(QHeaderView::ResizeMode mode)

其中 ResizeMode 是一個枚舉,取值如下:

  • HeaderView::Interactive 0 用戶可拖動改變列寬
  • QHeaderView::Fixed 2 固定列寬
  • QHeaderView::Stretch 1 拉伸自適應(yīng)列寬大小
  • QHeaderView::ResizeToContents 3 根據(jù)內(nèi)容設(shè)置列寬

通常,先整體設(shè)置為 QHeaderView::Stretch, 然后根據(jù)需要對單獨的列進行設(shè)置,如下:

// 1、先設(shè)置自適應(yīng)寬度,再單獨設(shè)置某一列的寬度規(guī)則
ui->twStudent->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);    //先自適應(yīng)寬度

// 2、然后,單獨設(shè)置某一列根據(jù)內(nèi)容調(diào)整寬度,或者單獨設(shè)置某一列為固定寬度
// ui->twStudent->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents);

ui->twStudent->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Fixed);
ui->twStudent->setColumnWidth(0, 80);

1.2 單元格

每個網(wǎng)格單元稱為一個單元格。每個單元格有一個行號、列號。

QTableWidget 表格控件中,每一個單元格是一個 QTableWidgetItem 對象,可以設(shè)置其文字內(nèi)容等。

獲取和設(shè)置單元格

// 獲取和設(shè)置指定行列位置的單元格
QTableWidgetItem *item(int row, int column) const;
void setItem(int row, int column, QTableWidgetItem *item)

// 構(gòu)造 QTableWidgetItem
QTableWidgetItem(const QIcon &icon, const QString &text, int type = Type)
QTableWidgetItem(const QString &text, int type = Type)

單元格文本對齊方式

// 獲取和設(shè)置單元格文本的對齊方式
int textAlignment() const
void setTextAlignment(int alignment)

參數(shù) alignment 是一個枚舉類型,常用取值如下:

  • Qt::AlignLeft (0x0001) 水平方向-左對齊
  • Qt::AlignRight (0x0002) 水平方向-右對齊
  • Qt::AlignHCenter (0x0004) 水平方向-居中對齊
  • Qt::AlignTop (0x0020) 垂直方向-上對齊
  • Qt::AlignBottom (0x0040) 垂直方向-下對齊
  • Qt::AlignVCenter (0x0080) 垂直方向-居中對齊
  • Qt::AlignCenter (AlignVCenter | AlignHCenter) 垂直方向和水平方向-居中對齊

上面的每一個宏,都代表 16 進制中的一位,可以進行或(|)操作,來同時設(shè)置多個對齊方式。

單元格是否可編輯

// 獲取和設(shè)置單元格是否可編輯
QAbstractItemView::EditTriggers editTriggers() const
void setEditTriggers(QAbstractItemView::EditTriggers triggers)

這是繼承自其父類 QAbstractItemView 中的方法

其中,QAbstractItemView::EditTriggers 是一個枚舉,常用取值如下:

  • AbstractItemView::NoEditTriggers 0 不可編輯

  • QAbstractItemView::CurrentChanged 1 當切換單元格時

  • QAbstractItemView::DoubleClicked 2 當雙擊單元格時

  • QAbstractItemView::SelectedClicked 4 當單擊一個已選中的單元格時

  • QAbstractItemView::EditKeyPressed 8 當一個單元格獲取焦點,按編輯按鍵時(F2)

  • QAbstractItemView::AnyKeyPressed 16 當一個單元格獲取焦點,按任意鍵時

  • QAbstractItemView::AllEditTriggers 31 以上所有條件的組合。(31 = 1|2|4|8|16)


1.3 隔行交替背景色

如下的奇數(shù)行和偶數(shù)行,它們的背景色不同,便于用戶瀏覽
qt表格控件,《QT開發(fā)筆記-基礎(chǔ)篇》,qt,c++,linux,物聯(lián)網(wǎng),嵌入式硬件

// 獲取和設(shè)置是否允許隔行交替背景色
bool alternatingRowColors() const
void setAlternatingRowColors(bool enable)

這是繼承自其父類 QAbstractItemView 中的方法


1.4 選擇模式、選擇行為

所謂選擇行為,是指當點擊一個單元格時,是選中該單元格,還是選中一整行

// 獲取和設(shè)置選擇行為
QAbstractItemView::SelectionBehavior selectionBehavior() const
void setSelectionBehavior(QAbstractItemView::SelectionBehavior behavior)

這是繼承自其父類 QAbstractItemView 中的方法

其中 QAbstractItemView::SelectionBehavior 是一個枚舉,取值為:

QAbstractItemView::SelectItems 0 選中單元格

QAbstractItemView::SelectRows 1 選中單元格所在行

QAbstractItemView::SelectColumns 2 選中單元格所在列

所謂選擇模式,是指設(shè)置表格控件只可選擇單行、可選擇多行等。

// 獲取和設(shè)置選擇模式
QAbstractItemView::SelectionMode selectionMode() const
void setSelectionMode(QAbstractItemView::SelectionMode mode)

這是繼承自其父類 QAbstractItemView 中的方法

其中 QAbstractItemView::SelectionMode 是一個枚舉,取值為:

  • QAbstractItemView::NoSelection 0 不可選擇

  • QAbstractItemView::SingleSelection 1 單行選擇,一次只允許選擇一行

  • QAbstractItemView::MultiSelection 2 多行選擇,鼠標單擊就可以選擇多行

  • QAbstractItemView::ExtendedSelection 3 擴展選擇,按shift鍵選中一個范圍內(nèi)的行,ctrl鍵可以選中不相鄰的行

  • QAbstractItemView::ContiguousSelection 4 相鄰選擇,按shift鍵或ctrl鍵都可以選中一個范圍內(nèi)的行


1.5 設(shè)置樣式表

通過設(shè)置樣式表,可以使的表格控件更加美觀

void Widget::on_btnStyleSheet_clicked()
{
    QString cellStyle = R"(
        QTableView
        {
            text-align:center;
            background-color: rgba(255, 255, 255, 0);
            alternate-background-color:#e3edf9;
            font:14px "微軟雅黑";
            color:#677483;
            gridline-color: #ccddf0;
        }
    )";


    const QString horizontalHeaderStyle = R"(
        QHeaderView::section {
            color: black;
            font:bold 14px "微軟雅黑";
            text-align:center;
            height:32px;
            background-color: #d1dff0;
            border:1px solid #8faac9;
            border-left:none;
        }
    )";

    const QString verticalHeaderStyle = R"(
        QHeaderView::section {
            color: black;
            font:bold 14px "微軟雅黑";
            width:60px;
            text-align:center;

            background-color: #d1dff0;
            border:1px solid #8faac9;
            border-left:none;
        }
    )";

    ui->twStudent->setStyleSheet(cellStyle);
    ui->twStudent->horizontalHeader()->setStyleSheet(horizontalHeaderStyle);
    ui->twStudent->verticalHeader()->setStyleSheet(verticalHeaderStyle);
}

以上 R 包裹的字符串,就是 C++ 中的原始字符串

原始字符串:使用前綴 R 來標識,并用 "()" 用作定界符

就是所見即所得,不用寫難以理解的轉(zhuǎn)義字符。


2. 案例


本案例展示表格控件的以下操作:

  • 行表頭的設(shè)置
  • 列表頭的設(shè)置
  • 交替顯示背景色
  • 單元格可編輯
  • 設(shè)置樣式表
  • 選擇行為:單元格選擇或行選擇
  • 數(shù)據(jù)的增刪改查

qt表格控件,《QT開發(fā)筆記-基礎(chǔ)篇》,qt,c++,linux,物聯(lián)網(wǎng),嵌入式硬件


2.1 布局

UI 設(shè)計師界面,拖拽對應(yīng)的控件,修改顯示的文字、控件的 name,然后完成布局


2.2 代碼實現(xiàn)

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    // 1. 初始化列表控件

    // 1.1 共有4列,并添加列的名稱
    ui->twStudent->setColumnCount(4);

    QStringList horizontalHeader;
    horizontalHeader << "姓名";
    horizontalHeader << "性別";
    horizontalHeader << "年齡";
    horizontalHeader << "籍貫";

    ui->twStudent->setHorizontalHeaderLabels(horizontalHeader);

    // 1.2 設(shè)置列的寬度
    // 先設(shè)置自適應(yīng)寬度,再單獨設(shè)置某一列的寬度規(guī)則
    ui->twStudent->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);    //先自適應(yīng)寬度
    // 然后,可以單獨設(shè)置某一列根據(jù)內(nèi)容調(diào)整寬度
//    ui->twStudent->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents);
    // 或者,可以單獨設(shè)置某一列為固定寬度
//    ui->twStudent->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Fixed);
//    ui->twStudent->setColumnWidth(0, 80);

    // 1.3 添加幾行初始化數(shù)據(jù)
    appendOneRow("李雷", "男", 12, "廣東");
    appendOneRow("韓梅梅", "女", 11, "北京");
    appendOneRow("林濤", "男", 13, "上海");



    // 2. 設(shè)置行表頭是否顯示
    // 首先根據(jù)在屬性窗口中設(shè)置的屬性,初始化復選框
    if(ui->twStudent->horizontalHeader()->isHidden()) {
        ui->cboHHeader->setChecked(false);
    } else {
        ui->cboHHeader->setChecked(true);
    }

    // 點擊復選框時,顯示或者隱藏行表頭
    connect(ui->cboHHeader, &QCheckBox::stateChanged, this, [=](int state) {
        if(state == Qt::Checked) {
            ui->twStudent->horizontalHeader()->show();
        } else if(state == Qt::Unchecked) {
            ui->twStudent->horizontalHeader()->hide();
        }
    });

    // 3. 設(shè)置列表頭是否顯示
    // 首先根據(jù)在屬性窗口中設(shè)置的屬性,初始化復選框
    if(ui->twStudent->verticalHeader()->isHidden()) {
        ui->cboVHeader->setChecked(false);
    } else {
        ui->cboVHeader->setChecked(true);
    }

    // 點擊復選框時,顯示或者隱藏列表頭
    connect(ui->cboVHeader, &QCheckBox::stateChanged, this, [=](int state) {
        if(state == Qt::Checked) {
            ui->twStudent->verticalHeader()->show();
        } else if(state == Qt::Unchecked) {
            ui->twStudent->verticalHeader()->hide();
        }
    });

    // 4. 交替顯示行的背景色
    // 首先根據(jù)在屬性窗口中設(shè)置的屬性,初始化復選框
    if(ui->twStudent->alternatingRowColors()) {
        ui->cboAlternate->setChecked(true);
    } else {
        ui->cboAlternate->setChecked(false);
    }

    // 點擊復選框時,使能或者禁能交替背景色
    connect(ui->cboAlternate, &QCheckBox::stateChanged, this, [=](int state) {
        if(state == Qt::Checked) {
            ui->twStudent->setAlternatingRowColors(true);
        } else if(state == Qt::Unchecked) {
            ui->twStudent->setAlternatingRowColors(false);
        }
    });

    // 5. 設(shè)置單元格是否可編輯
    // 首先根據(jù)在屬性窗口中設(shè)置的屬性,初始化復選按鈕
    int trigger = ui->twStudent->editTriggers();
    if(trigger == QAbstractItemView::NoEditTriggers) {
        ui->cboEditCell->setChecked(false);
    } else {
        ui->cboEditCell->setChecked(true);
    }

    // 點擊復選按鈕時,使能或者禁能單元格編輯
    connect(ui->cboEditCell, &QCheckBox::stateChanged, this, [=](int state) {
        if(state == Qt::Checked) {
            // 當雙擊單元格/選中單元格然后單擊/按下編輯鍵F2,都可以編輯單元格。
            ui->twStudent->setEditTriggers(QAbstractItemView::DoubleClicked |
                                           QAbstractItemView::SelectedClicked |
                                           QAbstractItemView::EditKeyPressed);
        } else if(state == Qt::Unchecked) {
            ui->twStudent->setEditTriggers(QAbstractItemView::NoEditTriggers);
        }
    });

    // 6. 設(shè)置行選擇還是單元格選擇
    // 首先根據(jù)在屬性窗口中設(shè)置的屬性,初始化單選按鈕的選中狀態(tài)
    int selectionBehavior = ui->twStudent->selectionBehavior();
    if(selectionBehavior == QAbstractItemView::SelectItems) {
        ui->rbCell->setChecked(true);
    } else if(selectionBehavior == QAbstractItemView::SelectRows){
        ui->rbRow->setChecked(true);
    }

    // 點擊單選按鈕時,使能單元格選中或者行選中
    mButtonGroupSelection = new QButtonGroup(this);
    mButtonGroupSelection->addButton(ui->rbCell, 0);
    mButtonGroupSelection->addButton(ui->rbRow, 1);
    connect(ui->rbCell, &QRadioButton::clicked, this, &Widget::onSelectionRadioButtonClicked);
    connect(ui->rbRow, &QRadioButton::clicked, this, &Widget::onSelectionRadioButtonClicked);

    // 7. 單元格點擊時, 將對應(yīng)行的數(shù)據(jù)顯示到文本框
    connect(ui->twStudent, &QTableWidget::itemClicked, this, &Widget::onItemClicked);
}

Widget::~Widget()
{
    delete ui;
}

void Widget::appendOneRow(QString name, QString gender, int age, QString province)
{
    // 獲取當前行數(shù)
    int count = ui->twStudent->rowCount();
    qDebug() << "current count:" << count;

    // 設(shè)置當前行數(shù)
    ui->twStudent->setRowCount(count+1);

    QTableWidgetItem* nameItem = new QTableWidgetItem(name);
    QTableWidgetItem* genderItem = new QTableWidgetItem(gender);
    QTableWidgetItem* ageItem = new QTableWidgetItem(QString::number(age));
    QTableWidgetItem* provinceItem = new QTableWidgetItem(province);

    nameItem->setTextAlignment(Qt::AlignCenter);
    genderItem->setTextAlignment(Qt::AlignCenter);
    ageItem->setTextAlignment(Qt::AlignCenter);
    provinceItem->setTextAlignment(Qt::AlignCenter);

    ui->twStudent->setItem(count, 0, nameItem);
    ui->twStudent->setItem(count, 1, genderItem);
    ui->twStudent->setItem(count, 2, ageItem);
    ui->twStudent->setItem(count, 3, provinceItem);
}

void Widget::insertOneRow(int row, QString name, QString gender, int age, QString province)
{
    ui->twStudent->insertRow(row);

    // 上面 insertRow 只是插入一個空行,需要手動添加每個單元格的內(nèi)容
    QTableWidgetItem* nameItem = new QTableWidgetItem(name);
    QTableWidgetItem* genderItem = new QTableWidgetItem(gender);
    QTableWidgetItem* ageItem = new QTableWidgetItem(QString::number(age));
    QTableWidgetItem* provinceItem = new QTableWidgetItem(province);

    nameItem->setTextAlignment(Qt::AlignCenter);
    genderItem->setTextAlignment(Qt::AlignCenter);
    ageItem->setTextAlignment(Qt::AlignCenter);
    provinceItem->setTextAlignment(Qt::AlignCenter);

    ui->twStudent->setItem(row, 0, nameItem);
    ui->twStudent->setItem(row, 1, genderItem);
    ui->twStudent->setItem(row, 2, ageItem);
    ui->twStudent->setItem(row, 3, provinceItem);
}

void Widget::on_btnAppend_clicked()
{
    QString name = ui->leName->text();
    QString gender = ui->leGender->text();
    int age = ui->leAge->text().toInt();
    QString province = ui->leProvince->text();

    appendOneRow(name, gender, age, province);
}

void Widget::on_btnInsert_clicked()
{
    QString name = ui->leName->text();
    QString gender = ui->leGender->text();
    int age = ui->leAge->text().toInt();
    QString province = ui->leProvince->text();

    // 獲取當前選中的行號
    int currentRow = ui->twStudent->currentRow();

    insertOneRow(currentRow, name, gender, age, province);
}

void Widget::on_btnDelete_clicked()
{
    // 獲取當前選中的行號
    int currentRow = ui->twStudent->currentRow();
    ui->twStudent->removeRow(currentRow);
}

void Widget::on_btnModify_clicked()
{
    QString name = ui->leName->text();
    QString gender = ui->leGender->text();
    int age = ui->leAge->text().toInt();
    QString province = ui->leProvince->text();

    // 獲取當前選中的行號
    int currentRow = ui->twStudent->currentRow();

    QTableWidgetItem* nameItem = new QTableWidgetItem(name);
    QTableWidgetItem* genderItem = new QTableWidgetItem(gender);
    QTableWidgetItem* ageItem = new QTableWidgetItem(QString::number(age));
    QTableWidgetItem* provinceItem = new QTableWidgetItem(province);

    nameItem->setTextAlignment(Qt::AlignCenter);
    genderItem->setTextAlignment(Qt::AlignCenter);
    ageItem->setTextAlignment(Qt::AlignCenter);
    provinceItem->setTextAlignment(Qt::AlignCenter);

    ui->twStudent->setItem(currentRow, 0, nameItem);
    ui->twStudent->setItem(currentRow, 1, genderItem);
    ui->twStudent->setItem(currentRow, 2, ageItem);
    ui->twStudent->setItem(currentRow, 3, provinceItem);
}

void Widget::onItemClicked(QTableWidgetItem *item)
{
    int row = item->row();

    QString name = ui->twStudent->item(row, 0)->text();
    QString gender = ui->twStudent->item(row, 1)->text();
    QString age = ui->twStudent->item(row, 2)->text();
    QString province = ui->twStudent->item(row, 3)->text();

    ui->leName->setText(name);
    ui->leGender->setText(gender);
    ui->leAge->setText(age);
    ui->leProvince->setText(province);
}

void Widget::on_btnStyleSheet_clicked()
{
    QString cellStyle = R"(
        QTableView
        {
            text-align:center;
            background-color: rgba(255, 255, 255, 0);
            alternate-background-color:#e3edf9;
            font:14px "微軟雅黑";
            color:#677483;
            gridline-color: #ccddf0;
        }
    )";


    const QString horizontalHeaderStyle = R"(
        QHeaderView::section {
            color: black;
            font:bold 14px "微軟雅黑";
            text-align:center;
            height:32px;
            background-color: #d1dff0;
            border:1px solid #8faac9;
            border-left:none;
        }
    )";

    const QString verticalHeaderStyle = R"(
        QHeaderView::section {
            color: black;
            font:bold 14px "微軟雅黑";
            width:60px;
            text-align:center;

            background-color: #d1dff0;
            border:1px solid #8faac9;
            border-left:none;
        }
    )";

    ui->twStudent->setStyleSheet(cellStyle);
    ui->twStudent->horizontalHeader()->setStyleSheet(horizontalHeaderStyle);
    ui->twStudent->verticalHeader()->setStyleSheet(verticalHeaderStyle);
}

void Widget::onSelectionRadioButtonClicked()
{
    int checkedId = mButtonGroupSelection->checkedId();
    if(checkedId == 0) {
        ui->twStudent->setSelectionMode(QAbstractItemView::SingleSelection);
        ui->twStudent->setSelectionBehavior(QAbstractItemView::SelectItems);
    } else if (checkedId == 1) {
        ui->twStudent->setSelectionMode(QAbstractItemView::SingleSelection);
        ui->twStudent->setSelectionBehavior(QAbstractItemView::SelectRows);
    }
}

本節(jié)對應(yīng)的視頻講解:B_站_鏈_接
https://www.bilibili.com/video/BV15N4y177W2文章來源地址http://www.zghlxwxcb.cn/news/detail-530311.html


到了這里,關(guān)于【QT開發(fā)筆記-基礎(chǔ)篇】| 第二章 常用控件 | 2.12 表格控件 QTableWidget的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Spark大數(shù)據(jù)分析與實戰(zhàn)筆記(第二章 Spark基礎(chǔ)-03)

    Spark大數(shù)據(jù)分析與實戰(zhàn)筆記(第二章 Spark基礎(chǔ)-03)

    又回到了原點,就從現(xiàn)在開始我的新生活吧。 章節(jié)概要:Spark運行架構(gòu)與原理 I. 引言 A. 概述Spark B. Spark的特點和優(yōu)勢 II. Spark運行架構(gòu)概述 A. Spark集群模式 B. Spark運行模式 C. Spark執(zhí)行引擎:Spark Core D. Spark計算模塊:RDD E. Spark數(shù)據(jù)抽象模塊:DataFrame和Dataset F. Spark資源管理器:

    2024年02月03日
    瀏覽(103)
  • Spark大數(shù)據(jù)分析與實戰(zhàn)筆記(第二章 Spark基礎(chǔ)-02)

    Spark大數(shù)據(jù)分析與實戰(zhàn)筆記(第二章 Spark基礎(chǔ)-02)

    人生就像賽跑,不在乎你是否第一個到達盡頭,而在乎你有沒有跑完全程。 Spark于2009年誕生于美國加州大學伯克利分校的AMP實驗室,它是一個可應(yīng)用于大規(guī)模數(shù)據(jù)處理的統(tǒng)一分析引擎。Spark不僅計算速度快,而且內(nèi)置了豐富的API,使得我們能夠更加容易編寫程序。 請參考《

    2024年02月03日
    瀏覽(100)
  • Spark大數(shù)據(jù)分析與實戰(zhàn)筆記(第二章 Spark基礎(chǔ)-05)

    Spark大數(shù)據(jù)分析與實戰(zhàn)筆記(第二章 Spark基礎(chǔ)-05)

    成長是一條必走的路路上我們傷痛在所難免。 在大數(shù)據(jù)處理和分析領(lǐng)域,Spark被廣泛應(yīng)用于解決海量數(shù)據(jù)處理和實時計算的挑戰(zhàn)。作為一個快速、可擴展且易于使用的分布式計算框架,Spark為開發(fā)人員提供了豐富的API和工具來處理和分析大規(guī)模數(shù)據(jù)集。 其中,Spark-Shell是Spar

    2024年02月03日
    瀏覽(100)
  • Spark大數(shù)據(jù)分析與實戰(zhàn)筆記(第二章 Spark基礎(chǔ)-01)

    Spark大數(shù)據(jù)分析與實戰(zhàn)筆記(第二章 Spark基礎(chǔ)-01)

    寧愿跑起來被拌倒無數(shù)次,也不愿規(guī)規(guī)矩矩走一輩子,就算跌倒也要豪邁的笑。 Spark于2009年誕生于美國加州大學伯克利分校的AMP實驗室,它是一個可應(yīng)用于大規(guī)模數(shù)據(jù)處理的統(tǒng)一分析引擎。Spark不僅計算速度快,而且內(nèi)置了豐富的API,使得我們能夠更加容易編寫程序。 Spark下

    2024年02月03日
    瀏覽(85)
  • 第二章 Android控件與界面交互

    第二章 Android控件與界面交互

    Android界面布局就是定義應(yīng)用中的界面結(jié)構(gòu)(例如Activity的界面結(jié)構(gòu))。界面布局中的所有元素均使用View和ViewGroup對象的層次結(jié)構(gòu)進行構(gòu)建。View通常用于繪制用戶可查看并進行交互的內(nèi)容。然而,ViewGroup是不可見容器,用于定義View和其他ViewGroup對象的布局結(jié)構(gòu),如圖2.1所示

    2024年02月03日
    瀏覽(36)
  • 《Flink學習筆記》——第二章 Flink的安裝和啟動、以及應(yīng)用開發(fā)和提交

    《Flink學習筆記》——第二章 Flink的安裝和啟動、以及應(yīng)用開發(fā)和提交

    ? 介紹Flink的安裝、啟動以及如何進行Flink程序的開發(fā),如何運行部署Flink程序等 2.1 Flink的安裝和啟動 本地安裝指的是單機模式 0、前期準備 java8或者java11(官方推薦11) 下載Flink安裝包 https://flink.apache.org/zh/downloads/ hadoop(后面Flink on Yarn部署模式需要) 服務(wù)器(我是使用虛擬

    2024年02月10日
    瀏覽(17)
  • .NET5從零基礎(chǔ)到精通:全面掌握.NET5開發(fā)技能【第二章】

    .NET5從零基礎(chǔ)到精通:全面掌握.NET5開發(fā)技能【第二章】

    章節(jié) 第一章:https://www.cnblogs.com/kimiliucn/p/17613434.html 第二章:https://www.cnblogs.com/kimiliucn/p/17620153.html 第三章:https://www.cnblogs.com/kimiliucn/p/17620159.html 5.1-使用Session 5.2-Log4Net組件使用 (1)管理Nuget程序,下載【log4net】和【Microsoft.Extensions.Logging.Log4Net.AspNetCore】 (2)新建一個文件

    2024年02月13日
    瀏覽(26)
  • 【筆記】ARM M3-M4權(quán)威指南第二章《嵌入式軟件開發(fā)介紹》

    【筆記】ARM M3-M4權(quán)威指南第二章《嵌入式軟件開發(fā)介紹》

    2.1 ARM微控制器是由哪些構(gòu)成的 2.2 開始時需要準備什么 2.2.1 開發(fā)組件,C 編譯器組件產(chǎn)品如下 2.2.2 開發(fā)板 2.2.3 調(diào)試適配板(Keil – ULINK;IAR-- I-Jet;STM Value Line Discover;JTAG/SW仿真器/在線仿真器(ICE);開源板 – ARM的CMSIC-DAP和Coocox的CoLink) 2.2.4 軟件設(shè)備驅(qū)動 2.2.5 示例(Samp

    2024年04月13日
    瀏覽(109)
  • 第二章 編程基礎(chǔ)

    第二章 編程基礎(chǔ)

    內(nèi)容框圖 單行注釋: 快速注釋: 多行注釋: 使用+號拼接 使用拼接函數(shù) 列表 列表是一個有序的序列結(jié)構(gòu),可以存放不同數(shù)據(jù)類型的數(shù)據(jù)。 列表每一個元素有一個索引。 列表可以進行一系列操作,添加,刪除,修改元素。 元組是一個有序的序列結(jié)構(gòu),基本結(jié)構(gòu)和列表類似。

    2024年02月06日
    瀏覽(38)
  • 第二章 webpack基礎(chǔ)用法

    第二章 webpack基礎(chǔ)用法

    ?Entry用來指定webpack打包的入口,下圖中webpack找到入口文件后,會將該文件所有的代碼和非代碼依賴都梳理出來,最終遍歷完依賴樹后生成打包后的靜態(tài)資源。 ?單入口:entry是一個字符串 module.exports={ ? ? ? ? entry:\\\'./path/to/my/entry/file.js\\\' } ?多入口:entry是一個對象 module.exp

    2023年04月15日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包