使用QTableWidget绘制的表格
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
使⽤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是表格每个⼩格的类,可以向其中添加⽂字、控件、布局。