QT 学习笔记 QListWidget,QTableWidget和QTreeWidget

文章参考:https://blog.csdn.net/sinat_35261315/article/details/54730818

Qt提供了三个可以直接使用的视图类用于呈现模板中的数据,分别是QListView,QTableView和QTreeView。紧接着Qt又提供了基于这三个类设计的更方便的类,分别是QListWidget,QTableWidget,QTreeWidget。

QListWidget类是一个列表组件,内部的数据以列表的形式呈现出来。列表中每一个元素都是一个QListWidgetItem类。
QTableWidget类是一个表格组件,内部的数据以表格的形式呈现出来。表格中每一个元素都是一个QTableWidgetItem类。
QTreeWidget类是一个树组件,内部的数据以树的形式呈现出来。树中的每一个元素都是一个QTreeWidgetItem类。

话不多说,直接上代码:

//初始化我们在UI上定义的控件
this->qListWidget = this->ui->listWidget;
this->qTableWidget = this->ui->tableWidget;
this->qTreeWidget = this->ui->treeWidget;

//添加QListWidget子项目
new QListWidgetItem(QString(tr("Oak")), qListWidget);
new QListWidgetItem(QString(tr("Fir")), qListWidget);
qListWidget->addItem(new QListWidgetItem(QString(tr("Pine"))));
QStringList data;
data << "Aspen" << "Alamo" <<"Cedar";
qListWidget->addItems(data);

//添加QTableWidget表头和内容
QStringList weekList;
data << "Monday" << "Tuesday" <<"Wednesday"<< "Thursday" << "Friday" <<"Saturday"<<"Sunday";
qTableWidget->setHorizontalHeaderLabels(data);
QTableWidgetItem *newItem = new QTableWidgetItem(tr("%1").arg("Physics Class"));
// void setItem(int row, int column, QTableWidgetItem *item)
qTableWidget->setItem(1, 1, newItem);
qTableWidget->setItem(1, 2, new QTableWidgetItem(QString(tr("Chinese Class"))));
qTableWidget->setItem(2, 2, new QTableWidgetItem(tr("English Class")));
qTableWidget->setItem(3, 2, new QTableWidgetItem(tr("Music Class")));

//设置树形结构
QStringList headers;
headers << "Name" << "Number";
qTreeWidget->setHeaderLabels(headers);

QTreeWidgetItem *root = new QTreeWidgetItem(qTreeWidget, QStringList() << "Root" << "0");

QTreeWidgetItem *file01 = new QTreeWidgetItem(root, QStringList() << "File01" << "1");
new QTreeWidgetItem(file01, QStringList() << "File01_01" << "1");
new QTreeWidgetItem(file01, QStringList() << "File01_02" << "2");

QTreeWidgetItem *file02 = new QTreeWidgetItem(root, QStringList() << "File02" << "2");
new QTreeWidgetItem(file02, QStringList() << "File02_01" << "1");

//qTreeWidget->setColumnCount(1);
QList<QTreeWidgetItem *> items;
for (int i = 0; i < 10; ++i)
    //items.append(new QTreeWidgetItem((QTreeWidget*)1, QStringList(QString("item: %1").arg(i))));
    items.append(new QTreeWidgetItem(root, QStringList() << QString("File%1").arg(i+3) << QString("%1").arg(i+3) ));
qTreeWidget->insertTopLevelItems(0, items);

QListWidget类添加Item的方法如下:(默认都是添加到列表的尾端)

void QListWidget::addItem(QListWidgetItem *item)
void QListWidget::addItems(const QStringList &labels)
以及初始化时直接赋值:
new QListWidget(QString &, QListWidget *parent)

QTableWidget 类添加Item的方法如下:

//setItem 在对应的位置添加 QTableWidgetItem 
void QTableWidget::setItem(int row, int column, QTableWidgetItem *item)

QTreeWidget 类添加Item的方法如下:

void QTreeWidget::setHeaderLabels(const QStringList &labels)
new QTreeWidgetItem(QTreeWidgetItem *parent, QStringList &)

在将物品添加到tree小部件之前,必须用setColumnCount()设置列的数量
在标签列表中为每个条目添加一个列,并为每一列设置标签。
注意,setHeaderLabels()不会删除现有的列。
因为树状结构是层次结构,所以在添加的时候需要指出要添加的那个位置的根节点指针。

运行结果

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值