本篇介紹Qt中表格組件的使用,需要用到QTableWidget。
通過一個實例來介紹QTableWidget,下圖是表格使用的測試效果。
1 QTableWidget
QTableWidget是Qt中的表格組件類,相關使用函數可以參考Qt Creator中自帶的幫助文檔。
2 代碼編寫
2.1 圖形界面設置
從左側的ItemWidgets中,拖出一個Table Widget放到界面中,然后設置合適的大小。
另外,為了方便測試數據的插入,可以添加一個按鈕來每次插入一條數據,例如插入一條書籍的信息。
Table Widget放入后,可以在ui界面雙擊這個控件來繼續編輯表格的行和列等信息,也可以通過代碼的方式來設置表格的信息,本篇通過代碼編寫的方式,再對Table Widget進行相關信息的初始化。
2.2 表格初始化與數據插入
表格初始化放到界面類(如Widget)的構造函數中,用于初始化表格的表頭,字體大小,行寬度等。
通過按下按鈕觸發一條數據插入。
//表格初始化
ui->tableWidget->setColumnCount(4);
ui->tableWidget->setFont(QFont("宋體", 9));
ui->tableWidget->setHorizontalHeaderLabels(QStringList() << "id" << "書名" << "出版社" << "價格");
ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
ui->tableWidget->setColumnWidth(0,100);
ui->tableWidget->setColumnWidth(1,260);
ui->lineEditID->setText(QString("%1").arg(m_bookID, 4, 10, QLatin1Char('0'))); //4位10進制, 前面補0
?
//按下插入按鈕后的槽函數
void Widget::on_pushButton_clicked()
{
int curRow = ui->tableWidget->rowCount();
ui->tableWidget->insertRow(curRow);
ui->tableWidget->setItem(curRow, 0, new QTableWidgetItem(ui->lineEditID->text().toUtf8().data()));
ui->tableWidget->setItem(curRow, 1, new QTableWidgetItem(ui->textEditName->toPlainText()));
ui->tableWidget->setItem(curRow, 2, new QTableWidgetItem(ui->textEditPublisher->toPlainText()));
ui->tableWidget->setItem(curRow, 3, new QTableWidgetItem(ui->lineEditPrice->text().toUtf8().data()));
?
ui->lineEditID->setText(QString("%1").arg(++m_bookID, 4, 10, QLatin1Char('0'))); //4位10進制, 前面補0
}
2.3 滾動條樣式修改
當表格中的數據不能在一個表格窗口顯示出來時,QTableWidget會自動產生滾動條,但滾動條的樣式可能不完全符合自己的需求,因此可以通過自定義滾動條樣式。
#include
3 演示
可以先在Windows平臺上運行查看顯示效果。
然后將程序進行交叉編譯,將編譯結果放到Linux板子中運行。
交叉編譯的過程可參考之前的文章:
通過指令來進行交叉編譯:
/home/xxpcb/myTest/imx6ull/otherlib/qt/qt-everywhere-src-5.12.9/arm-qt/bin/qmake
在i.MX6ULL板子中的測試視頻如下:
4 總結
本篇介紹了Qt中QTable Widget這個表格組件的使用,后續可增加SQLite數據庫功能,利用表格可以直觀的展示出嵌入式設備的數據庫中的數據信息。
審核編輯:湯梓紅
-
測試
+關注
關注
8文章
5375瀏覽量
127057 -
嵌入式
+關注
關注
5092文章
19177瀏覽量
307647 -
函數
+關注
關注
3文章
4346瀏覽量
62968 -
表格
+關注
關注
0文章
13瀏覽量
8728 -
Qt
+關注
關注
1文章
308瀏覽量
38064
發布評論請先 登錄
相關推薦
評論