C++ Qt5 學習筆記 2020-12-11(QTreeWidget使用新增專案,及其他相關操作)
阿新 • • 發佈:2020-12-13
技術標籤:筆記
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中新增孩子節點:
以下例子把item2
和item3
放到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);