现在的位置: 首页 > 综合 > 正文

QT QTableWidget 用法

2014年02月18日 ⁄ 综合 ⁄ 共 3088字 ⁄ 字号 评论关闭

http://blog.csdn.net/xcy2011sky/article/details/6991073 

QTableWidget是QT程序中常用的显示数据表格的空间,很类似于VC、C#中的DataGrid。说到QTableWidget,就必须讲一下它跟QTabelView的区别了。QTableWidget是QTableView的子类,主要的区别是QTableView可以使用自定义的数据模型来显示内容(也就是先要通过setModel来绑定数据源),而QTableWidget则只能使用标准的数据模型,并且其单元格数据是QTableWidgetItem的对象来实现的(也就是不需要数据源,将逐个单元格内的信息填好即可)。这主要体现在QTableView类中有setModel成员函数,而到了QTableWidget类中,该成员函数变成了私有。使用QTableWidget就离不开QTableWidgetItem。QTableWidgetItem用来表示表格中的一个单元格,正个表格都需要用逐个单元格构建起来。

 

面的程式碼為簡單的QTableWidget與QTableWidgetItem的示範:

  1. #include <QApplication> 
  2. #include <QTableWidget> 
  3. #include <QHBoxLayout> 
  4. int main(int argc, char *argv[]) {  
  5.     QApplication app(argc, argv);     
  6.      QTableWidget *tableWidget = new QTableWidget;      
  7.      tableWidget->setWindowTitle("QTableWidget & Item");      
  8.      tableWidget->resize(350, 200);      
  9.      tableWidget->setRowCount(10);  
  10.          tableWidget->setColumnCount(5);     
  11.          QStringList header;     
  12.          header.append("Month");      
  13.          header.append("Description");      
  14.          tableWidget->setHorizontalHeaderLabels(header);               
  15.          tableWidget->setItem(0, 0, new QTableWidgetItem("January"));      
  16.          tableWidget->setItem(1, 0, new QTableWidgetItem("February"));      
  17.          tableWidget->setItem(2, 0, new QTableWidgetItem("March"));     
  18.           tableWidget->setItem(0, 1,         
  19.           new QTableWidgetItem(QIcon("caterpillar_head.jpg"), "caterpillars month"));      
  20.           tableWidget->setItem(1, 1,       new QTableWidgetItem(QIcon("momor_head.jpg"), "momors month"));            
  21.           tableWidget->setItem(2, 1,       new QTableWidgetItem(QIcon("bush_head.jpg"), "bushs month"));                  
  22.           tableWidget->show();      
  23.           return app.exec();  
  24.           } 

  使用setItem()時必須指定儲存格索引值,索引為列(row)行(column),皆從0開始,最左上角即為索引(0, 0)位置  。QTableWidgetItem也可以設置圖片或核取狀態(setCheckState())等  。

  下圖為程式執行時的畫面:

  详解 QT Tablewidget 那些事

代碼2-------------------------------------------------------------------------------------------------------
  1. #include <QtGui/QApplication>  
  2. #include <QTableWidget>  
  3. #include <QTableWidgetItem>  
  4.   
  5. int main(int argc, char *argv[])  
  6. {  
  7.     QApplication a(argc, argv);  
  8.     QTableWidget *tableWidget = new QTableWidget(10,5); // 构造了一个QTableWidget的对象,并且设置为10行,5列  
  9.     //    也可用下面的方法构造QTableWidget对象  
  10.     //    QTableWidget *tableWidget = new QTableWidget;  
  11.     //    tableWidget->setRowCount(10);     //设置行数为10  
  12.     //    tableWidget->setColumnCount(5);   //设置列数为5  
  13.     tableWidget->setWindowTitle("QTableWidget & Item");  
  14.     tableWidget->resize(350, 200);  //设置表格  
  15.     QStringList header;  
  16.     header<<"Month"<<"Description";  
  17.     tableWidget->setHorizontalHeaderLabels(header);  
  18.     tableWidget->setItem(0,0,new QTableWidgetItem("Jan"));  
  19.     tableWidget->setItem(1,0,new QTableWidgetItem("Feb"));  
  20.     tableWidget->setItem(2,0,new QTableWidgetItem("Mar"));  
  21.   
  22.     tableWidget->setItem(0,1,new QTableWidgetItem(QIcon("images/IED.png"), "Jan's month"));  
  23.     tableWidget->setItem(1,1,new QTableWidgetItem(QIcon("images/IED.png"), "Feb's month"));  
  24.     tableWidget->setItem(2,1,new QTableWidgetItem(QIcon("images/IED.png"), 

抱歉!评论已关闭.