本文主要是介绍【已解决】如何为qt表格设置复选框单击事件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
本博文源于笔者正在处理的表格复选框的事件,这里遇到的问题是:想要为qt表格中每一行复选框设置单击事件,一开始不知道如何处理,后面研究学习了一下,故记录此博文。
问题原因
想要为qt表格中每一行复选框设置单击事件,更好的控制其他业务逻辑。
问题解决方案
.cpp文件里构造函数
connect(ui.tableMoudle, &QTableView::clicked, this, &CDevManageWidget::onItemClicked);
.h文件里声明
private slots:void onItemClicked(const QModelIndex &index);
.cpp里编写函数
void CDevManageWidget::onItemClicked(const QModelIndex & index)
{if (index.column() == ColChk) { QStandardItem *item = CDataCenter::Instance()->getDevManageModel()->itemFromIndex(index);if (item && item->isCheckable()) {if (item->checkState() == Qt::Unchecked)m_header->setChecked(false);}}bool bChecked = true;auto table = CDataCenter::Instance()->getDevManageModel();for (int i = 0; i < table->rowCount(); i++) {bChecked = table->data(table->index(i, ColChk), Qt::CheckStateRole).toBool();if (!bChecked) break;}if(bChecked) m_header->setChecked(true);
}
这篇关于【已解决】如何为qt表格设置复选框单击事件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!