QTableWidget实现上移下移选中行操作

initTable();
	//上移
	connect(ui.pushButton, &QPushButton::clicked, this,[=]() {
		//步骤1
		int rowi = ui.tableWidget->currentRow();
		qDebug() << rowi;
		if (rowi == 0)
		{
			QMessageBox::information(this, "提示",  "已经是第一行,无法继续上移");
		}
		else
		{
			ui.tableWidget->insertRow(rowi - 1);    //rowi为选中行的索引
			//步骤2
			for (int i = 0; i < ui.tableWidget->columnCount(); ++i)
			{
				QTableWidgetItem* a = new QTableWidgetItem(ui.tableWidget->item(rowi + 1, i)->text());
				a->setTextAlignment(Qt::AlignCenter);
				ui.tableWidget->setItem(rowi - 1, i,a );
			}
			//步骤3
			ui.tableWidget->removeRow(rowi + 1);
			//步骤4
			ui.tableWidget->selectRow(rowi - 1);
		}
		
		});
	//下移
	connect(ui.pushButton_2, &QPushButton::clicked, this, [=]() {
		//步骤1
		int rowi = ui.tableWidget->currentRow();
		if (rowi == 3)
		{
			QMessageBox::information(this, "提示", "已经是最后一行,无法继续下移");
		}
		else
		{
			ui.tableWidget->insertRow(rowi + 2);        //rowi为选中行的索引
			//步骤2
			for (int i = 0; i < ui.tableWidget->columnCount(); ++i)
			{
				QTableWidgetItem* b = new QTableWidgetItem(ui.tableWidget->item(rowi, i)->text());
				b->setTextAlignment(Qt::AlignCenter);
				ui.tableWidget->setItem(rowi + 2, i,b );
			}
			//步骤3
			ui.tableWidget->removeRow(rowi);
			//步骤4
			ui.tableWidget->selectRow(rowi + 1);
		}
		
		});
	//加载参数
	connect(ui.pushButton_3, &QPushButton::clicked, this, [=]() {
		QSqlDatabase db;
		db = QSqlDatabase::addDatabase("QSQLITE", "test");
		db.setDatabaseName("test.db");
		QString path = QCoreApplication::applicationDirPath();
		qDebug() << path;
		if (db.open())
		{
			qDebug() << "数据库连接成功";
			QSqlQuery query(db);
			for (int i = 0; i < ui.tableWidget->rowCount(); i++)
			{
				QString str = QString("update StyleSort set StyleName = '%1'where id = '%2'").arg(ui.tableWidget->item(i, 0)->text()).arg(i);
				query.exec(str);
				qDebug() << str;
				if (!query.exec())
				{
					qDebug() << query.lastError();
				}
			}
		}
		else
		{
			qDebug() << "数据库连接失败";
		}
		
		});

初始化表格

void QtWidgetsSort::initTable()
{
	ui.tableWidget->setColumnCount(1);
	ui.tableWidget->setRowCount(4);
	QStringList head;
	head << "名称";
	ui.tableWidget->setHorizontalHeaderLabels(head);
	ui.tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
	ui.tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
	ui.tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);
	QTableWidgetItem* a = new QTableWidgetItem("春眠不觉晓");
	QTableWidgetItem* b = new QTableWidgetItem("处处闻啼鸟");
	QTableWidgetItem* c = new QTableWidgetItem("夜来风雨声");
	QTableWidgetItem* d = new QTableWidgetItem("花落知多少");
	a->setTextAlignment(Qt::AlignCenter);
	b->setTextAlignment(Qt::AlignCenter);
	c->setTextAlignment(Qt::AlignCenter);
	d->setTextAlignment(Qt::AlignCenter);
	ui.tableWidget->setItem(0, 0, a);
	ui.tableWidget->setItem(1, 0, b);
	ui.tableWidget->setItem(2, 0, c);
	ui.tableWidget->setItem(3, 0, d);

}

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值