1. 程式人生 > 其它 >C++ Qt5 學習筆記 2020-12-11(QTreeWidget使用新增專案,及其他相關操作)

C++ Qt5 學習筆記 2020-12-11(QTreeWidget使用新增專案,及其他相關操作)

技術標籤:筆記

1、QTreeWidget新增專案:

QTreeWidget的專案和列都可以直接在ui中雙擊新增,假設新增2列為例:
在這裡插入圖片描述
使用程式碼新增專案:

//初始化TreeWidget專案
QTreeWidgetItem *item1=new QTreeWidgetItem;
//專案圖示
item1->setIcon(0,button_ico_add_friends);  //列數
//圖示大小
item1->setSizeHint(0,QSize(20,20));
//專案文字
item1->setText(0,u8"第一個");
//放到TreeWidget中,多個時尾插的方式
ui->group_tree->addTopLevelItem(item1);

其中,設定專案的屬性時,都需要在屬性前加一個數字,這個數字代表新增的屬性作用的列數,此處0表示第一列。由此可以得出,每初始化的一個QTreeWidgetItem物件,即是建立了一整行。

執行結果:
在這裡插入圖片描述
再寫段程式碼用於比較:

ui->group_tree->setStyleSheet("border:0px;");
QTreeWidgetItem *item1=new QTreeWidgetItem;
QTreeWidgetItem *item2=new QTreeWidgetItem;
QTreeWidgetItem *item3=new QTreeWidgetItem; //第一行 item1->setIcon(0,button_ico_add_friends); item1->setText(0,u8"第一個"); //第二行 item2->setText(1,u8"第二個"); //第三行 item3->setText(0,u8"第三個"); ui->group_tree->addTopLevelItem(item1); ui->group_tree->addTopLevelItem
(item2); ui->group_tree->addTopLevelItem(item3);

在這裡插入圖片描述

2、其他一些相關的操作:

(1)在tree Widget中放label

QLabel *label = new QLabel;
label->setStyleSheet("border-image:url(:/new/prefix1/source/2.jpg);");
ui->group_tree->setItemWidget ( item,0,label );    //item行,0列

(2)修改item的行高:

ui->group_tree-setStyleSheet("QTreeWidget#group_tree{border:0px;}"
                             "QTreeWidget#group_tree::item{height:30px;}");

(3)改變item圖示大小:
試了一下,item中沒有seticonsize屬性,發現直接設定treeWidget的圖示大小可以作用於item上:

ui->group_tree->setIconSize(QSize(50,50));

在這裡插入圖片描述
(4)設定列數:

//5列
ui->group_tree->setColumnCount(5);

在這裡插入圖片描述
(5)設定標題為item

ui->group_tree->setHeaderItem(item1);

在這裡插入圖片描述
(6)設定標題文字:

QStringList headers;
headers<<u8"列1-1"<<u8"列1-2";
ui->group_tree->setHeaderLabels(headers);

在這裡插入圖片描述
(7)在item中新增孩子節點:
以下例子把item2item3放到item1中,作為其孩子節點:

    QIcon group_ico1(":/new/prefix1/source/2.jpg");
    ui->group_tree->setIconSize(QSize(50,50));
    item1->setIcon(0,group_ico1);
    item1->setText(1,u8"第一個");
    item2->setText(0,u8"第二個");
    item3->setText(0,u8"第三個");
    ui->group_tree->addTopLevelItem(item1);

    item1->addChild(item2);
    item1->addChild(item3);

在這裡插入圖片描述
(8)新增複選框:

item1->setCheckState(0,Qt::Unchecked);
item2->setCheckState(0,Qt::Unchecked);
item3->setCheckState(0,Qt::Unchecked);

在這裡插入圖片描述
(9)隱藏下拉小三角:

ui->group_tree->setRootIsDecorated(false);

在這裡插入圖片描述
(10)隱藏頭部:

ui->group_tree->setHeaderHidden(true);

在這裡插入圖片描述
(11)設定列寬:

//第一個引數為列數,第二個為寬度
ui->group_tree->setColumnWidth(0, 105);

(12)設定字型顏色:

//第2列為紅色
item2->setTextColor(1,QColor(255,0,0));

在這裡插入圖片描述
(13)展開item:

//展開所有的
ui->group_tree->expandAll();
//展開某一個item
ui->group_tree->expandItem(item1);
//展開當前item
item1->setExpanded(true);
//向下展開深度
ui->group_tree->expandToDepth(1);

3、QDrag拖放event和action:

https://blog.csdn.net/hyongilfmmm/article/details/83238239