本文主要总结删除QWidget中的控件和清空QTableView表格内容用法,下面将详细讲述这两种用法的实现方式。
1.1删除QWidget中的控件(函数removeWidget())
要删除QWidget中的控件,可以现在QWidget用QVBoxLayout布局,然后用QVBoxLayout::removeWidget(QWidget*)函数删除指定名称的控件,删除后要用delete释放空间,否则不会显示出来。
QVBoxLayout *m_VBoxLayout = new QVBoxLayout(this);
QPushButton *m_button = QPushButton(QStringLiteral("按钮"));
m_VBoxLayout->addWidget(m_button);
if(!m_VBoxLayout->isEmpty()) //如果垂直布局器中有控件,则执行删除控件
{
m_VBoxLayout->removeWidget(m_button); //删除按钮控件
delete m_button; //释放控件
qDebug()<<m_VBoxLayout->isEmpty(); //判断垂直布局是否为空
}
1.2清空表格控件QTableView(函数clear())
要清空表格控件QTableView,只需要清空模型项QStandItemModel的对象就行。只要用到函数QStandItemModel::clear()就可以了。下面代码是一个清空QTabView表格的简单用法。
//初始化
QTableView m_TableView = new QTableView;
QStandardItemModel *m_StandItemModel = new QStandardItemModel;
m_TableView.setModel(m_StandItemModel);
m_StandItemModel->clear(); //清空模型时,对应表格的内容会同步清空
1.3清空QTabView表格用法同样适用于列表控件QListView、树形控件QTreeView。
总结:
需要清空QWidget布局管理器中的控件,只需要用到函数QVBoxLayout::removeWidget(QWidget*)。
要清空表格控件QTableView的内容,只需要用到函数QStandItemModel::clear()。
参考内容:
https://blog.youkuaiyun.com/supervictim/article/details/52679863
https://bbs.youkuaiyun.com/topics/390993164