博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
lesson6-表
阅读量:7105 次
发布时间:2019-06-28

本文共 3322 字,大约阅读时间需要 11 分钟。

一、表
1、QTableWidget
    QTableWidget是Qt中最常见的显示数据表格的控件,它是QTableView的子类。它必须使用标准的数据模型,每一个单元格必须QTableWidgetItem对象实现。
2、常用方法
1)、构造函数,创建指定行和列的表
QTableWidget ( int rows, int columns, QWidget * parent = 0 )
 
2)、普通函数
void setHorizontalHeaderItem ( int column, QTableWidgetItem * item )
void setHorizontalHeaderLabels ( const QStringList & labels )
void setVerticalHeaderItem ( int row, QTableWidgetItem * item )
void setVerticalHeaderLabels ( const QStringList & labels )
setItem ( int row, int column, QTableWidgetItem * item )
void setCellWidget ( int row, int column, QWidget * widget )
int rowCount () 
int columnCount () 
3)、槽函数
void insertColumn ( int column )
void insertRow ( int row )
void removeColumn ( int column )
void removeRow ( int row )
4)、信号
void cellChanged ( int row, int column )
void cellClicked ( int row, int column )
void cellDoubleClicked ( int row, int column )
void itemChanged ( QTableWidgetItem * item )
void itemClicked ( QTableWidgetItem * item )
void itemDoubleClicked ( QTableWidgetItem * item )
二、单元格
1、QTableWidgetItem
QTableWidget表格的建立必须依靠单元格,整个表格都是由单元格建立起来的
2、常用方法
1)、构造函数,创建指定行和列的表
QTableWidgetItem ( const QString & text, int type = Type )
QTableWidgetItem ( const QIcon & icon, const QString & text, int type = Type )
 
2)、普通函数
void setBackground ( const QBrush & brush )
void setText ( const QString & text )
int textAlignment () const
void setIcon ( const QIcon & icon )
三、实例
1、头文件

点击(此处)折叠或打开

  1. #ifndef TABLEWIDGET_H
  2. #define TABLEWIDGET_H
  3. #include QtGui>
  4. class tableWidget : public QDialog
  5. {
  6. Q_OBJECT
  7. public:
  8.     tableWidget();
  9. private:
  10.     QPushButton *addRowBtn, *addColBtn, *removeRowBtn, *removeColBtn;
  11.     QTableWidget *table;
  12. public slots:
  13.     void addRow();
  14.     void addCol();
  15.     void removeRow();
  16.     void removeCol();
  17. };
  18. #endif
2、cpp

点击(此处)折叠或打开

  1. #include "tableWidget.h"
  2. tableWidget::tableWidget()
  3. {
  4.     //控件初始化
  5.     addRowBtn = new QPushButton("增加行");
  6.     addColBtn = new QPushButton("增加列");
  7.     removeRowBtn = new QPushButton("删除行");
  8.     removeColBtn = new QPushButton("删除列");
  9.     table = new QTableWidget(2,3);
  10.     //布局
  11.     QVBoxLayout *vLay = new QVBoxLayout();
  12.     vLay->addWidget(addRowBtn);
  13.     vLay->addWidget(addColBtn);
  14.     vLay->addWidget(removeRowBtn);
  15.     vLay->addWidget(removeColBtn);
  16.     QHBoxLayout *hLay = new QHBoxLayout();
  17.     hLay->addWidget(table);
  18.     hLay->addLayout(vLay);
  19.     setLayout(hLay);
  20.     //绑定信号和槽函数
  21.     connect(addRowBtn, SIGNAL(clicked()), this, SLOT(addRow()));
  22.     connect(addColBtn, SIGNAL(clicked()), this, SLOT(addCol()));
  23.     connect(removeRowBtn, SIGNAL(clicked()), this, SLOT(removeRow()));
  24.     connect(removeColBtn, SIGNAL(clicked()), this, SLOT(removeCol()));
  25.     //设置表头
  26.     QStringList head;
  27.     head"姓名""年龄""性别";
  28.     table->setHorizontalHeaderLabels(head);
  29.     //设置单元格
  30.     table->setItem(0, 0, new QTableWidgetItem("魏杰"));
  31.     table->setItem(0, 1, new QTableWidgetItem("30"));
  32.     QComboBox *com1 = new QComboBox();
  33.     QComboBox *com2 = new QComboBox();
  34.     QStringList sex;
  35.     sex"男""女";
  36.     com1->addItems(sex);
  37.     com2->addItems(sex);
  38.     table->setCellWidget(0, 2, com1);
  39.     table->setCellWidget(1, 2, com2);
  40.     
  41.     resize(800, 800);
  42.     setWindowTitle("hehe");
  43.     
  44. }
  45. void tableWidget::addRow()
  46. {
  47.     int num = table->rowCount();
  48.     table->insertRow(num);
  49. }
  50. void tableWidget::addCol()
  51. {
  52.     int num = table->columnCount();
  53.     table->insertColumn(num);
  54. }
  55. void tableWidget::removeRow()
  56. {
  57.     int num = table->rowCount();
  58.     table->removeRow(num-1);
  59. }
  60. void tableWidget::removeCol()
  61. {
  62.     int num = table->columnCount();
  63.     table->removeColumn(num-1);
  64. }

转载地址:http://kbjhl.baihongyu.com/

你可能感兴趣的文章
数据库数据恢复实验过程
查看>>
RIP理论知识
查看>>
清空memcached中缓存的数据的方法
查看>>
jsp通过include指令引入html乱码的解决方法
查看>>
解决mysql:The server quit without updating PID file
查看>>
网络实验要求
查看>>
linux7 ntp 开机不自动启动
查看>>
做一次面向对象的体操:将 JSON 字符串转换为嵌套对象的一种方法
查看>>
高可用Redis服务架构分析与搭建
查看>>
论JVM爆炸的几种姿势及自救方法
查看>>
Tomcat远程debug
查看>>
Java的BIO,NIO和AIO的区别于演进
查看>>
核心标签库-------------------二
查看>>
人工智能的就业替代效应
查看>>
生成树理论内容
查看>>
AJPFX总结正则表达式的概述和简单使用
查看>>
git命令
查看>>
httpclient post 发送Json数据
查看>>
git 将branch转为master
查看>>
在 CentOS 上安装和配置 OpenStack Nova
查看>>