大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全家桶1年46,售后保障稳定
1、void QTreeWidget::setHeaderLabels(const QStringList & labels)
设置表头,QStringList有几项,表头就有多少列
2、void QHeaderView::setSortIndicatorShown(bool show)
This property holds whether the sort indicator is shown.
By default, this property is false.(这里有误,经测试默认应该是true)
译:设置表头是否显示排序指示符,SortIndicator为水平标题栏文字旁边的小三角符号
如果要显示排序指示符,那么这个函数没必要调用。
3、void QHeaderView::setSortIndicator(int logicalIndex, Qt::SortOrder order)
Sets the sort indicator for the section specified by the given logicalIndex in the direction specified by order, and removes the sort indicator from any other section that was showing it.
译:为指定的 logicalIndex字段设置排序指示符(如果是升序,就是朝上的小三角;如果是降序,就是朝下的小三角)
同时在其他的字段位置将不显示排序指示符(其实任何情况下只能在一个字段位置处显示排序指示符)。
这只是一个初始化的设置,后期用户的操作可以改变这种设置。
4、void QTreeWidget::addTopLevelItem(QTreeWidgetItem * item)
为QTreeWdiget增加顶级项目
5、void QTreeWidgetItem::addChild(QTreeWidgetItem * child)
为顶级项目增加子项目
6、void QTreeWidget::setItemWidget(QTreeWidgetItem * item, int column, QWidget * widget)
将widget控件显示到item的column列里
下面给出一些简单实例代码:
#include <QTreeWidget>
#include <QTreeWidgetItem>
#include <QStringList>
#include <QSpinBox>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
QTreeWidget* treeWidget = new QTreeWidget(this);
treeWidget->setWindowTitle("QTreeWidget");
//设定头项名称
treeWidget->setHeaderLabels(QStringList()<<"Key"<<"Value");
treeWidget->setSortingEnabled(true);
//treeWidget->header()->setSortIndicatorShown(true);//设置排序指示符是否显示
treeWidget->header()->setSortIndicator(0,Qt::AscendingOrder);//为第0列设置排序指示符为升序
//设定各个项
QTreeWidgetItem* A = new QTreeWidgetItem(QStringList()<<"A");
A->setIcon(0, QIcon(":/images/a.png"));//资源文件前缀为/
A->setCheckState(0, Qt::Checked);
QTreeWidgetItem* B = new QTreeWidgetItem(QStringList()<<"B");
B->setIcon(0, QIcon(":/images/b.png"));
B->setCheckState(0, Qt::Checked);
QTreeWidgetItem* C = new QTreeWidgetItem(QStringList()<<"C");
C->setIcon(0, QIcon(":/images/c.png"));
C->setCheckState(0, Qt::Checked);
treeWidget->addTopLevelItem(A);//添加顶级项A
treeWidget->addTopLevelItem(B);//添加顶级项B
treeWidget->addTopLevelItem(C);//添加顶级项C
for(int i=0; i<3; ++i)//给A添加子项目
{
QStringList columItemList;
QTreeWidgetItem *child;
QString key, value;
key += "a" + QString::number(i);
value += QString::number(i);
columItemList<<key<<value;
child = new QTreeWidgetItem(columItemList);
A->addChild(child);
treeWidget->setItemWidget(child,1,new QSpinBox);//将QSpinBox显示到child项的第一列里
}
treeWidget->show();
}
treeWidget->setItemWidget(child,1,new QSpinBox)
这句代码调用之后会遮住value列的值,可以注释掉
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/213577.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...