lesson6-表

简介: 一、表 1、QTableWidget     QTableWidget是Qt中最常见的显示数据表格的控件,它是QTableView的子类。它必须使用标准的数据模型,每一个单元格必须QTableWidgetItem对象实现。
一、表
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. }





相关文章
|
7月前
|
编译器 C语言 C++
lesson05-C++模板
lesson05-C++模板
39 0
|
关系型数据库 MySQL 存储
MySQL 异常-- 1005 - Can't create table '.\blog\category.frm' (errno: 150)
异常 异常.png 原因 外键表类型不匹配或者数据库存储引擎不一致.
1314 0
|
存储 Oracle 关系型数据库
[20171218]varchar2(4000)如何保存.txt
varchar2(4000)如何保存
1287 0
|
关系型数据库 MySQL 索引
lesson1
本人小白,初次学习PAI,欢迎和大家一起交流学习这个PAI学习。阿里API直播课程的“手把手在线直播实操:机器学习PAI教你如何品酒”,我这边也就是学习一下。<br />数据源:<br />数据大小:96.1 KB<br />字段数量:12<br />使用组件:归一化,拆分,SQL脚本,读数据表<br />
641 0
|
Oracle 关系型数据库 Linux
[20170209]db_unique_name.txt
[20170209]db_unique_name.txt --前几天测试dataguard配置缺少fal_client,fal_server,log_archive_config,db_unique_name设置,会不会出现问题: --链接: http://blog.
915 0
|
SQL Shell 测试技术
[20161023]为什么以前可以这样的表.txt
[20161023]为什么以前可以这样的表.txt --上午看https://oracleblog.org/working-case/ora-01401-impdp-same-character/ CREATE TABLE ASS_ACC...
794 0
|
Oracle 关系型数据库 OLAP
[20160910]快速修改表的schema.txt
[20160910]快速修改表的schema.txt --以前也做过例子: http://blog.itpub.net/267265/viewspace-741154/ http://blog.itpub.net/267265/viewspace-744787/ --第1种就是修改数据字典的情况,但是这种存在一定的风险,我当时的测试版本11.2.0.1还有修改obj$的字段spare3. --第2种就是利用交换分区的方法。
841 0
|
缓存 C++
lesson8-目录和文件
一、QT目录操作 1、Qt提供了QFile类来实现文件的操作,为了更方便的处理文本和二进制,还提供的QTextStream类QDataStream类。处理目录可以使用QDir 2、QDir类具有存取目录结构和内容的能力,使用QDir可以操作、存取目录、文件信息、底层文件系统,还可以存取Qt的资源文件 3、QDir可以使用相对路径也可以使用绝对路径,你可以使用isRelative() isAbsolute()函数来检测使用的是相对路径还是绝对路径。
837 0
[20150115]insert多个表.txt
[20150115]insert多个表.txt --别人给我提出一个问题,要把表拆开2个表,能否快速完成这个工作。还是通过例子来说明: SCOTT@test> @ver1 PORT_STRING                    VERSION  ...
707 0