1. 程式人生 > >Qt文件閱讀筆記-QHeaderView::sectionResized官方解析與例項

Qt文件閱讀筆記-QHeaderView::sectionResized官方解析與例項

官方解析

不翻譯了,很簡單的英語

博主例子

程式執行截圖如下

原始碼如下:

widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();

private:
    Ui::Widget *ui;

    void updateSectionWidth(int logicalIndex, int oldSize, int newSize);
    void updateSectionHeight(int logicalIndex, int oldSize, int newSize);
};

#endif // WIDGET_H

main.cpp

#include "widget.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();

    return a.exec();
}

widget.cpp

#include "widget.h"
#include "ui_widget.h"

#include <QDebug>
#include <QHeaderView>
#include <QTableWidgetItem>

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

    QStringList list;
    for(int i=0;i<100;i++){
        list<<QString::number(i);
    }

    ui->tableWidget->setHorizontalHeaderLabels(list);
    ui->tableWidget->setVerticalHeaderLabels(list);
    ui->tableWidget->setRowCount(100);
    ui->tableWidget->setColumnCount(100);


    for(int i=0;i<100;i++){
        for(int j=0;j<100;j++){
            QTableWidgetItem *item=new QTableWidgetItem;
            item->setText(QString::number(i+j));
            ui->tableWidget->setItem(i,j,item);
        }
    }

    connect(ui->tableWidget->horizontalHeader(),&QHeaderView::sectionResized,this,&Widget::updateSectionWidth);
    connect(ui->tableWidget->verticalHeader(),&QHeaderView::sectionResized,this,&Widget::updateSectionHeight);
}

Widget::~Widget()
{
    delete ui;
}

void Widget::updateSectionWidth(int logicalIndex, int oldSize, int newSize)
{
    qDebug()<<"updateSectionWidth called";
    qDebug()<<"logicalIndex:"<<logicalIndex;
    qDebug()<<"oldSize:"<<oldSize;
    qDebug()<<"oldSize:"<<newSize;
    qDebug()<<"*************";
}

void Widget::updateSectionHeight(int logicalIndex, int oldSize, int newSize)
{
    qDebug()<<"updateSectionHeight called";
    qDebug()<<"logicalIndex:"<<logicalIndex;
    qDebug()<<"oldSize:"<<oldSize;
    qDebug()<<"oldSize:"<<newSize;
    qDebug()<<"*************";
}