zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    [百度百科]PCI-E的速度
    Oracle 高版本往低版本备份恢复的方法
    PHP-Java-Bridge使用笔记
    Delphi获取其它进程窗口句柄的3种方法
    二层交换机当三层交换机,使用单臂路由实现二层交换机上的VLAN互通
    Python下科学计算包numpy和SciPy的安装【原创】
    OpenGL: 你不知道的左右手坐标系
    Delphi XE7的安卓程序如何调用JAVA的JAR,使用JAVA的类?
    科普:UTF-8 GBK UTF8 GB2312 之间的区别和关系
    phpmyadmin #1045 #2002 无法登录 MySQL 服务器的解决方
  • 原文地址:https://www.cnblogs.com/findumars/p/4060235.html
Copyright © 2011-2022 走看看