便捷类QListWidget、QTreeWidget 、QTableWidget简单示例

1、视图效果

2、源码:

#include <QApplication>
#include <QListWidget>
#include <QTreeWidget>
#include <QTableWidget>
#include <QDebug>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    //QListWidget
    QListWidget list_widget;
    //一种添加项目的简便方法
    new QListWidgetItem("a", &list_widget);
    //添加项目的另一种方法,这样可以进行各种设置
    QListWidgetItem *list_widget_item = new QListWidgetItem;
    list_widget_item->setText("b");
    list_widget_item->setIcon(QIcon(""));
    list_widget_item->setToolTip("this is b!");
    list_widget.insertItem(1, list_widget_item);
    //设置排序为倒序
    list_widget.sortItems(Qt::DescendingOrder);
    list_widget.show();

    //QTreeWidget,层次结构由QTreeWidget和QTreeWidgetItem控制
    QTreeWidget tree_widget;
    //必须设置列数
    tree_widget.setColumnCount(2);
    //设置表头
    QStringList headers;
    headers << "name" << "year";
    tree_widget.setHeaderLabels(headers);
    //添加项目
    QTreeWidgetItem *grade_1 = new QTreeWidgetItem(&tree_widget);
    grade_1->setText(0, "Grade1");
    QTreeWidgetItem *student = new QTreeWidgetItem(grade_1);
    student->setText(0, "Tom");
    student->setText(1, "1986");
    //设置grade_1为grade_2的前一个项目
    QTreeWidgetItem *grade_2 = new QTreeWidgetItem(&tree_widget, grade_1);
    grade_2->setText(0, "Grade2");
    tree_widget.show();
    //删除QTreeWidget中项目
    //先获取当前项目项目有父项目,则使用其父项目删除当前项目,否则使用树部件删除当前项目
    QTreeWidgetItem *parent = student->parent();
    int index;
    //如果当前项目
    if(parent){
        //参数为返回当前项目
        index = parent->indexOfChild(tree_widget.currentItem());
        delete parent->takeChild(index);
    }else{
        index = tree_widget.indexOfTopLevelItem(tree_widget.currentItem());
        delete tree_widget.takeTopLevelItem(index);
    }
    //向QTreeWidget中添加项目
    QTreeWidgetItem *root = student->parent();
    QTreeWidgetItem *new_item;
    if(root){
        //当前项目之后添加新的项目
        new_item = new QTreeWidgetItem(parent, tree_widget.currentItem());
    }else{
        new_item = new QTreeWidgetItem(&tree_widget, tree_widget.currentItem());
    }

    //QTableWidget
    //创建表格部件,同时指定行数和列数
    QTableWidget table_widget(3,2);
    //创建表格项目,并插入到指定单元
    QTableWidgetItem *table_widget_item = new QTableWidgetItem("qt");
    table_widget.setItem(1,1,table_widget_item);
    //创建表格项目,并将他们作为标头
    QTableWidgetItem *header_v = new QTableWidgetItem("first");
    table_widget.setVerticalHeaderItem(0, header_v);
    QTableWidgetItem *header_h = new QTableWidgetItem("ID");
    table_widget.setHorizontalHeaderItem(0, header_h);
    table_widget.show();

    return a.exec();
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值