QTableView的用法
1.QTableView 和QStandardItemModel 配合使用
设置表头宽度
ui->tableView->setColumnWidth(LISTCOLUMN_INDEX, 60);
ui->tableView->setColumnWidth(LISTCOLUMN_TIME, 180);
ui->tableView->setColumnWidth(LISTCOLUMN_CHANNEL, 70);
ui->tableView->setColumnWidth(LISTCOLUMN_ALARM_MESSAGE, 240);
ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
ui->tableView->setSelectionMode(QAbstractItemView::SingleSelection);
ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
设置TableView 表的表头
typedef enum
{
LISTCOLUMN_INDEX = 0,
LISTCOLUMN_TIME,
LISTCOLUMN_CHANNEL,
LISTCOLUMN_ALARM_MESSAGE
}LISTVIEW_COLUMN;
QStandardItemModel m_Model
m_Model.setHorizontalHeaderItem(LISTCOLUMN_INDEX, NEW QStandardItem(QObject::tr(" Index")));
m_Model.setHorizontalHeaderItem(LISTCOLUMN_TIME, NEW QStandardItem(QObject::tr("Time")));
m_Model.setHorizontalHeaderItem(LISTCOLUMN_CHANNEL, NEW QStandardItem(QObject::tr("Channel")));
m_Model.setHorizontalHeaderItem(LISTCOLUMN_ALARM_MESSAGE, NEW QStandardItem(QObject::tr("Alarm Message")));
ui->tableView->setModel(&m_Model);
添加表的内容
QString strAlarmType = "";
QString strChannel = "";
QString strIndex = "";
QString strTime = "";
strChannel.setNum(stAlarmInfo.nChannel+1);
strIndex.setNum(g_nInidex);
setAlarmTyoe(stAlarmInfo.nType, bAlarmStatus, strAlarmType);
QDateTime currentTime = QDateTime::currentDateTime();
strTime = currentTime.toString("yyyy-MM-dd hh:mm:ss:zzz");
QList<QStandardItem*> listItem;
listItem<<NEW QStandardItem(strIndex)<<NEW QStandardItem(strTime)<<NEW QStandardItem(strChannel)<<NEW QStandardItem(strAlarmType);
m_Model.insertRow(0, listItem);
g_nInidex++;
清理资源
m_Model.removeRows(0, m_Model.rowCount());