QTableView使用及添加控件(按钮)

1、引入头文件

#include 

2、类中声明指针

QStandardItemModel *model;

3、在ui界面拖入表格 QTableView控件,并命名,例如:tableView。

4、在构造函数或自定义成员函数中 对表格进行初始化

model = new QStandardItemModel();
//设置表头列名
model->setHorizontalHeaderItem(0, new QStandardItem(QObject::tr("用户名")));
model->setHorizontalHeaderItem(1, new QStandardItem(QObject::tr("密码")));
model->setHorizontalHeaderItem(2, new QStandardItem(QObject::tr("按钮")));
//为表格控件设置数据模型
ui->tableView->setModel(model);
//设置表头信息居中
ui->tableView->horizontalHeader()->setDefaultAlignment(Qt::AlignCenter);
//设置列宽
ui->tableView->setColumnWidth(0,100);			//参数:列号,宽度

//隐藏行头
ui->tableView->verticalHeader()->hide();
//设置表格选中时为整行选中
ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
//设置表格的单元为只读属性,即不能编辑
ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
//设置单选
ui->tableView->setSelectionMode(QAbstractItemView::SingleSelection);
//设置多选
ui->tableView->setSelectionMode(QAbstractItemView::MultiSelection);

//往表格中添加数据
model->setItem(0, 0, new QStandardItem("张三"));
model->setItem(0, 1, new QStandardItem("123456"));
model->setItem(0, 2, new QStandardItem("1"));

//往表格中添加按钮控件
QPushButton *button = new QPushButton("开始");
//设置按钮的自定义属性
button->setProperty("S_Username",model->index(0,0,QModelIndex()).data().toString());
button->setProperty("S_Password",model->index(0,1,QModelIndex()).data().toInt());
//为按钮点击信号绑定响应槽函数
connect(button, SIGNAL(clicked(bool)), this, SLOT(onTableBtnClicked()));
//将按钮加入表格中
ui->tableView->setIndexWidget(model->index(model->rowCount()-1,2),button);

//新增按钮点击槽函数
void MainWindow::onTableBtnClicked()
{
	//先获取信号的发送者 
	QPushButton *button = (QPushButton*)sender();
	//提取按钮的自定义属性 数据类型须统一
	QString Username = button->property("S_Username").toString();
	int Password = button->property("S_Password").toInt();
}

你可能感兴趣的:(QT,qtcreator,qt)