QTableWidget使用简单,因为不再存在父节点的关系

虽然使用比较简单,但亲自过一遍还是有必要的,权当一个学习笔记吧,记录在此。

#include "tablewidgetxxx.h"
#include <QtGui/QApplication>
#include <QtGui/QTableWidget>

typedef struct {
    char * country;
    double GDP, population;
}GDP_FACTS; 

GDP_FACTS GDP_facts[] = {
    {"United States",  14.6,   2.7  },
    {"PRC China",        6.1,  13.0  },
    {"Japan",            5.4,   1.3  },
    {"Germany",            3.3,   0.8  },
    {"United Kingdom",  2.3,   0.6  }
};

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

    const int rows=5, columns=4;
    // 实例化Table,并指定行列数
    QTableWidget widget(rows, columns);
    // 设置表头
    QStringList list;
    list << "Country" << "Grand GDP" << "Population" << "GDP per person";
    widget.setHorizontalHeaderLabels(list);

    for (int row=0; row<rows; row++) {
        // 每一个items[j]代表一个Cell,整体组成一行
        QTableWidgetItem * items[columns];
        // 设置每一行的Cell风格
        for (int j=0; j<columns; j++ ) {
            items[j] = new QTableWidgetItem(); // 创建一个QTableWidgetItem对象表示表格中的一个Cell数据项
            items[j]->setTextAlignment( Qt::AlignHCenter);
            QFont font;    font.setPointSize(16);
            items[j]->setFont( font );
        }
        // 设置每一行的Cell内容
        GDP_FACTS * p = & GDP_facts[row]; // 结构体指针赋值,使之指向提前定义的固定内容
        items[0]->setData(Qt::DisplayRole, p->country ); // 构造的QVariant对象存放一个QString值
        items[1]->setData(Qt::DisplayRole, p->GDP );     // 构造的QVariant对象存放double类型的值
        items[2]->setData(Qt::DisplayRole, p->population );
        items[3]->setData(Qt::DisplayRole, p->GDP / p->population );
        // Table的Cell要一个一个设置
        for (int j=0; j<columns; j++ )
            widget.setItem(row, j, items[j] ); // 调用setItem()将它们添加到QTableWidget的内部模型中。
    }
    // 设置表头排序
    widget.setSortingEnabled(true );

    widget.resize(800, 300);
    widget.show();
    return app.exec();
}

参考:

http://book.51cto.com/art/201207/347904.htm

超详细说明:TableWidget使用说明和增删改操作的实现

http://www.cnblogs.com/li-peng/p/3654634.html

时间: 2024-08-11 03:36:31

QTableWidget使用简单,因为不再存在父节点的关系的相关文章

再谈树---无根树转有根树( dfs搜索转化+fa数组记录父节点) *【模板】

#include <stdio.h> #include <string.h> #include <stdlib.h> #include <vector> #include <algorithm> #define N 100000+2 using namespace std; //无根树转有根树算法 /* 算法分析:所谓无根树,就是根节点任意的树.我们可以给它确定一个根节点. 我们可以假定认为某一个节点为根节点,然后从该节点开始进行dfs或者bfs

二叉树最近公共父节点

在二叉树中找最近公共父节点.分为两种情况,一种是有父指针,一种没有父指针. 1.有父指针 这种情况比较简单,计算两个结点的深度,再把深度大的向上移,移到同一深度.在同时向上移动,直到两个结点相同,这样便找到了父节点.这个算法时间复杂度为O(N). 代码实现: #include<iostream> struct Node { int data; Node* left; Node* right; Node* parent; Node() :left(NULL), right(NULL), pare

LCA-最小公共父节点

有一个普通二叉树,AB分别为两个子节点,求AB最近(深度最大)的公共父节点. 此题仍然是一个老题,有着多种解决方法,本文针对其中三种方法来进行分析总结. 这三种方法分别是:递归法,tarjan离线算法,RMQ在线算法. 递归法 递归法比较直观简单,思路如下: 首先判定当前节点root是否是A节点或者B节点,若是的话直接返回该节点 若不是,分别对root节点的左右子树进行递归查找最小公共父节点,若左右子树都返回了节点,那么表示当前节点就是最小公共父节点,若只有其中一个子树返回了结果,那么就返回该结

二叉树中两个节点的最近公共父节点

这是京东周六的笔试题目   当时不在状态,现在想来肯定是笔试就被刷掉了,权当做个纪念吧.  这个问题可以分为三种情况来考虑: 情况一:root未知,但是每个节点都有parent指针此时可以分别从两个节点开始,沿着parent指针走向根节点,得到两个链表,然后求两个链表的第一个公共节点,这个方法很简单,不需要详细解释的. 情况二:节点只有左.右指针,没有parent指针,root已知思路:有两种情况,一是要找的这两个节点(a, b),在要遍历的节点(root)的两侧,那么这个节点就是这两个节点的最

使用jquery获取父元素或父节点

使用jquery获取父元素或父节点,比较简单,jquery提供了丰富的方法来让我们使用jquery获取父元素或父节点 jquery获取父元素方法比较多,比如parent(),parents(),closest()这些都能帮你实现查找父元素或节点,下面我们来一一讲解: 先举个例子, <ul class="parent1"> <li><a href="#" id="item1">jquery获取父节点</a&

找到树中指定id的所有父节点

const data = [{ id: 1, children: [{ id: 2, children: [{ id: 3, }, { id: 4, }], }], }, { id: 5, children: [{ id: 6, }], }]; let nodes = []; function getParentNodes(id, tree) { _getParentNodes([], id, tree); return nodes; } function _getParentNodes(his

vue版本根据当前路由匹配到根父节点并且激活

页面布局 我的项目是有两种布局方式的, 一种是左侧布局,还有一种是顶部+左侧的布局,在这里主要讲顶部+左侧布局  因为左侧的相对简单,会自行匹配 业务场景 当页面刷新的时候,要回到原来的页面,并且要激活正确的一级和二级菜单 首先  在data中创建数据 data() { return { menus: [],//菜单数据是id pid 加上children格式的 parentNodes: [] //最终调用函数返回的结果集 } }, 获取当前页面路由的id和pid let path = this

腾讯笔试题:满二叉排序树,任给3个子节点,找他们最大的公共父节点

腾讯笔试题出现了和这个类似的题目,没做出来,现在来好好解决这个问题吧,先从基本的开始. 先吐槽一下:感觉算法设计什么的,真的超级难,也许是我头脑太笨,转不过弯来吧,呵呵. 题目是这样的:一棵满二叉排序树,有K层,节点的值依次为 1~2k-1.现在告诉你树的高度是4层,给定你3个节点,比如9,11, 13,那么最大的公共父节点是12. 现在想起来这题我已经想出来一半了呀,但是大概人在紧张的时候大脑会思维短路,跳不出原有的思维陷阱.想法是这样的: 1. 首先是从根节点开始,如果给的三个叶节点的值其中

【JS学习笔记】DOM基础-字节点,父节点

一.DOM基础 (1)什么是DOM?DOM,即document,是用来操作页面上的元素,比如操作div获取,修改样式等.是JS的组成部分,还是一套规范. (2)浏览器的支持情况 现在主流的浏览器有3种,分别是IE,Chrome,Firefox. IE:在IE6-8版本中,对DOM的支持差不多是百分之十几差不多了,但是到了IE9就有了质的飞跃. Chrome:介于两者之间,在60%左右,对DOM支持的不是那么的好也不是那么的差. Firefox:对于DOM的支持几乎可以用99%来形容. 二.DOM