1.1 Treewidget置頂和取消置頂
需求中有個置頂案件的需求,取消置頂之後,被取消的案件在最後一個置頂案件下面,新建的案件也要在置頂案件下面,Treewidget本身沒有置頂的功能,但是Treewidget有個排序的功能,可以根據排序功能來做置頂和取消置頂功能;
(1)首選案件按照逆序排列
treeWidget->setSortingEnabled(true);
ui.treeWidget->sortItems(0, Qt::SortOrder::DescendingOrder);//案件按照添加時間逆序排列
(2)置頂和取消置頂設置時間text
創建案件時,設置創建時間,置頂時將案件時間加上100年,這樣就會自動按照時間逆序排序而置頂,當取消置頂時,再將時間減去100年;就會根據自動排序功能,回到原來的位置;
connect(pCase->ui.pbTop, &QPushButton::clicked, this, [=]() { //更新時間 if (pCase->m_top)//取消置頂 { pCase->ui.pbTop->setToolTip("置頂"); pCase->ui.pbTop->setChecked(false); pCase->m_top = false; QString strTime = QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"); topItem->setText(0, strTime); QString strSql = QString("update CaseManage set createtime = '%1' ,top='0' where path='%2'").arg(strTime).arg(info.value("path").toString()); QString strmsg = ""; QVariantMap result; LocalDb::instance()->ExcuateSql(strSql, result, strmsg); if (m_picPathDirInfo.find(info.value("path").toString()) != m_picPathDirInfo.end()) { m_picPathDirInfo[info.value("path").toString()]["createtime"] = strTime; m_picPathDirInfo[info.value("path").toString()]["top"] = "0"; } } else//置頂 { pCase->ui.pbTop->setToolTip("取消置頂"); pCase->ui.pbTop->setChecked(true); pCase->m_top = true; //增加100年作爲置頂時間排序最上面 QString strTime = QDateTime::currentDateTime().addYears(100).toString("yyyy-MM-dd hh:mm:ss"); topItem->setText(0, strTime); QString strSql = QString("update CaseManage set createtime= '%1' , top='1' where path='%2'").arg(strTime).arg(info.value("path").toString()); QString strmsg = ""; QVariantMap result; LocalDb::instance()->ExcuateSql(strSql, result, strmsg); if (m_picPathDirInfo.find(info.value("path").toString()) != m_picPathDirInfo.end()) { m_picPathDirInfo[info.value("path").toString()]["createtime"] = strTime; m_picPathDirInfo[info.value("path").toString()]["top"] = "1"; } } SlotUpdateTreeListBackground(); });
(3)設置時間顯示爲透明
QTreeWidget
{
background: #303033;
font-size:16px;
color: rgba(255,255,255,0);//字體顏色白色透明,不會顯示
border:0px;
background-image:url(:/preview/Resources/previewanalyze/nodata.png);
background-repeat:no-repeat;
background-position:center;
}
QTreeWidget::item
{
background: #303033;
}
QTreeWidget::branch
{
background:#303033;
}
QTreeWidget::item:hover
{
background: rgba(255,255,255,0.12);
}
QTreeWidget::item:selected{
background: rgba(32,128,247,0.32);
color: rgba(32,128,247,0);
}
QTreeWidget::branch:closed:has-children:!has-siblings,
QTreeWidget::branch:closed:has-children:has-siblings {
background-image:url(:/analysisCenter/Resources/analysisCenter/arrowexpend-nor.svg);
background-repeat:no-repeat;
background-position:center;
}
QTreeWidget::branch:open:has-children:!has-siblings,
QTreeWidget::branch:open:has-children:has-siblings {
background-image:url(:/analysisCenter/Resources/analysisCenter/arrowclose-nor.svg);
background-repeat:no-repeat;
background-position:center;
}