zoukankan      html  css  js  c++  java
  • QTableWidget基本功能总结(转)

    http://edsionte.com/techblog/archives/3014

    http://www.cuteqt.com/bbs/viewthread.php?tid=4213

    1、表格表头。
    表格表头可以靠horizontalHeader()以及verticalHeader()这两个成员函数获取,这两个函数来自于QTableWidget的父类QTableView,得到的返回值类型是QHeaderView*。
    通过获得表头还可以对表格的拉伸进行设置。相关的函数均来自于QHeaderView:setStretchLastSection()、sectionAutoResize()、setResizeMode()。
    表头的文字则可以由setHorizontalHeaderLabels()、以及setVerticalHeaderLabels()来设置。
    如果你想要使用一个自定义的表头类,则可以使用setVerticalHeaderItem()、setHorizontalHeaderItem()来进行设置。

    2、表格的数据设置与排序。
    QTableWidget允许多种数据类型的设置,理论上来说只要是QVariant能够接受的类型,都可以作为表格的内容来呈现。一般的文字信息采用setText()来设置,而如果是其他类型,比如int,则需要使用setData()来设置。注意,这两个函数都是QTableWidgetItem提供的。如果没有前导0这样的特殊需求,推荐使用setData()而不是setText(QString::number())的方式来设置数值,因为这样将导致数字类型的数据在排序时出现10比2优先的情况。另外,在重复设置数据的时候,可能表格原有的行数或列数已不满足现有的需求,那么可以使用clearContents()清空表格的所有内容(包括行数与列数)。如果有谁需要只读的表格(拒绝双击进行数据编辑),那么可以试试QTableWidgetItem的setFlags()进行操控,只要不设置可编辑标识即可。
    而至于排序,只需要使用setSortingEnabled()或者sortByColumn()来开启。需要注意的是,如果在排序开启后需要增加数据,应该先关闭排序再增加数据,之后再重新开启排序,否则由于排序的干扰,数据的增加将产生问题。如果希望进行一个自定义的排序(既不是基于字母,也不是基于数字大小),那么尝试继承QTableWidgetItem并重新实现operator<()函数将起到不小的作用。
    如果你的用户希望对表格进行一定程度的动态过滤,不要重新读取数据,setRowHidden()以及setColumnHidden()是个不错的选择。

  • 相关阅读:
    C# 为WebBrowser设置代理,打开网页
    C# WebBrowser 设置代理完全解决方案
    java读取文件的几种方式性能比较
    .NET 对文件和文件夹操作的介绍
    java利用反射打印出类的结构
    java输出月的日历控制台
    java 实现二分查找算法
    java实现快速排序
    解决window 12 service 不能调用excel ,报"System.Runtime.InteropServices.COMException (0x800A03EC)
    3 webpack 4 加vue 2.0生产环境搭建
  • 原文地址:https://www.cnblogs.com/daidaigua/p/2455139.html
Copyright © 2011-2022 走看看