Qt系列文章之(十三)表格窗体
上一篇文章介紹了幾個常用的界面控件模塊,如LineEdit等,本文介紹另一類界面窗口必不可少的窗體—表格窗體。Qt一共提供了兩大類表格窗體:基于Model的表格和基于條目的表格窗體。基于條目的表格是基于Model表格基礎上開出來的。本文主要介紹第二種表格開發:
一共三種條目化表格,比較常用的是Table Widget,也就是QTableWidget。QTableWidget需要基于表格化條目QTableWidgetItem來構造每一個柵格的內容,修改和定位也需要使用QTableWidgetItem。 如果您需要使用自己的特殊數據模型,如集成SQL數據結構快速構造表格,就需要使用第一種表格類型,即QTableView。
和其他窗體文件一下,可以通過QTableWidget的構造函數通過代碼手動構造出一個表格放置在主界面之中。如下構造一個12行3列的表格窗體。
tableWidget = new QTableWidget(12, 3, this)
類似的,此處也使用ui編輯器創建表格窗體,從左側拖入一個表格窗體進入主界面:
手動拖入的表格窗體沒有任何表頭和單元格信息,是一個空表格。
進入CPP的構造函數之中,為表格窗體設置一些屬性:
//為表格設置一些屬性ui->tableWidget->setRowCount(3); //設置表格行數ui->tableWidget->setColumnCount(2); //設置表格列數運行代碼,構造一個3X2表格:
表格沒有表頭,不好區別,為表格增加表頭:
QStringList header; header<<"Name"<<"Age"; ui->tableWidget->setHorizontalHeaderLabels(header); //添加表頭信息效果:
下面可以為表格添加一些內容,前面介紹過如果構造表格內容,需要使用QTableWidgetItem。因此需要先構造一個QTableWidgetItem對象,并設置信息,再將item對象放入Table之中:
QTableWidgetItem *item; //建立item指針item = new QTableWidgetItem("Bob"); //構造item ui->tableWidget->setItem(0,0,item); //放入表格之中1行1列單元格,行和列從0開始計數效果:
發現字體沒有居中,也需要使用QTableWidgetItem來修改,
item->setTextAlignment(Qt::AlignCenter); //單元格上下和左右都居中在通過類似的方式構造整個表格:
表格內容可以通過雙擊邊界。如果需要通過代碼來修改某一單元格的內容,比如需要將“Tom”改成“Tesla”,首選需要建立一個QTableWidgetItem指針來定位到第二行第一列。
item = ui->tableWidget->item(1,0); //定位到需要修改的單元格然后修改該單元格的內容:
item->setText("Tesla"); //修改單元格的內容運行代碼:
如果左右拉動表格,單元格并未布滿整個表格,使用如下代碼進行修飾:
ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); //表格均勻布滿水平內容效果:
本文使用到的對表格修改的代碼如下:
//為表格設置一些屬性ui->tableWidget->setRowCount(3); //設置表格行數ui->tableWidget->setColumnCount(2); //設置表格列數QStringList header;header<<"Name"<<"Age";ui->tableWidget->setHorizontalHeaderLabels(header); //添加表頭信息QTableWidgetItem *item; //建立item指針item = new QTableWidgetItem("Bob"); //構造itemitem->setTextAlignment(Qt::AlignCenter); //單元格上下和左右都居中ui->tableWidget->setItem(0,0,item); //放入表格之中1行1列單元格,行和列從0開始計數item = new QTableWidgetItem("25"); //構造itemitem->setTextAlignment(Qt::AlignCenter); //單元格上下和左右都居中ui->tableWidget->setItem(0,1,item); //放入表格之中1行2列單元格,行和列從0開始計數item = new QTableWidgetItem("Tom"); //構造itemitem->setTextAlignment(Qt::AlignCenter); //單元格上下和左右都居中ui->tableWidget->setItem(1,0,item);item = new QTableWidgetItem("18"); //構造itemitem->setTextAlignment(Qt::AlignCenter); //單元格上下和左右都居中ui->tableWidget->setItem(1,1,item);item = new QTableWidgetItem("Jim"); //構造itemitem->setTextAlignment(Qt::AlignCenter); //單元格上下和左右都居中ui->tableWidget->setItem(2,0,item);item = new QTableWidgetItem("55"); //構造itemitem->setTextAlignment(Qt::AlignCenter); //單元格上下和左右都居中ui->tableWidget->setItem(2,1,item);item = ui->tableWidget->item(1,0); //定位到需要修改的單元格item->setText("Tesla"); //修改單元格的內容ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); //表格均勻布滿水平內容歡迎同好溝通交流,批評指正,歡迎關注我的公號:不如起而行之
總結
以上是生活随笔為你收集整理的Qt系列文章之(十三)表格窗体的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 百度网盘资源下载加速教学
- 下一篇: 独立DAC