使用QTableWidget绘制的表格

简述

QTableWidget是qt自带的表格控件,可以方便的绘制表格。实现效果如下所示:在这里插入图片描述

代码之路

头文件包含声明

private:
	QTableWidget* m_tableWidget;
	QLabel* m_label;
	QVBoxLayout* m_vlayout; //界面布局

源文件的表格初始化

void Page::initWidget()
{
	//标题
	m_label = new QLabel(QStringLiteral("用户管理"));
	QFont font_label = m_label->font();
	font_label.setBold(true);
	font_label.setPointSize(13);
	m_label->setFont(font_label);  //设置字体
	
	//表
	m_tableWidget = new QTableWidget();
	m_tableWidget->setColumnCount(5); //设列数
	m_tableWidget->setHorizontalHeaderLabels(QStringList() <<""<<QStringLiteral("序号")<<QStringLiteral("账号") \
	<<QStringLiteral("备注")<<QStringLiteral("权限")); //设列标题
	m_tableWidget->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents); //设置列的缩放
    m_tableWidget->horizontalHeader()->setSectionResizeMode(1, QHeaderView::ResizeToContents);
    m_tableWidget->horizontalHeader()->setSectionResizeMode(2, QHeaderView::Stretch);
    m_tableWidget->horizontalHeader()->setSectionResizeMode(3, QHeaderView::Stretch);
    m_tableWidget->horizontalHeader()->setSectionResizeMode(4, QHeaderView::Stretch);
    m_tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows); //设置选择方式
    m_tableWidget->verticalHeader()->setHidden(true); //设置行标题隐藏
    m_tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers); //设置表格内容不可修改
    m_tableWidget->horizontalHeader()->setStyleSheet("QHeaderView::section{background-color:rgb(40,151,210);color:white;}"); //设置标题颜色

  	//布局
  	m_vlayout = new QVBoxLayout;
  	setLayout(m_vlayout);
  	m_vlayout->addWidget(m_label);
  	m_vlayout->addWidget(m_tableWidget);
}

checkbox点击的信号槽函数

void Page::onCheckbox()
{
	QCheckBox* senderObj = qobject_cast<QCheckBox*>(sender());
	if (senderObj == 0)
    {
		return;
	}
	QModelIndex index = m_tableWidget->indexAt(QPoint(senderObj->frameGeometry().x(), senderObj->frameGeometry().y()));
	unsigned int i = static_cast<unsigned int>(index.row());
	if (senderObj->isChecked())
	{
	  m_usernumStatus[i] = 1;  //用来存储是否点击checkbox的数组
	}
	else
	{
	  m_usernumStatus[i] = 0;
	} 	
}

小结

QTableWidget类提供一个基础的表格类,QTableWidgetItem是表格每个小格的类,可以向其中添加文字、控件、布局。

猜你喜欢

转载自blog.csdn.net/lusanshui/article/details/84523642