表格

#pragma execution_character_set("utf-8")
#include "Qtpix.h"
#include<qfile.h>
#include<qfiledialog.h>
#include<qpushbutton.h>
#include<QStandardItem>
#include <QDebug>
const QByteArrayList a;
Qtpix::Qtpix(QWidget *parent)
	: QMainWindow(parent)
{
	ui.setupUi(this);
	model = new QStandardItemModel();
	model->setColumnCount(3);
	connect(ui.pbt_add, SIGNAL(clicked()), this, SLOT(on_add_clicked()));
	connect(ui.pbt_open, SIGNAL(clicked()), this, SLOT(on_open_clicked()));
	connect(ui.pbt_save, SIGNAL(clicked()), this, SLOT(on_save_clicked()));
	ui.tableView->setModel(model);
}
void Qtpix::on_add_clicked() {
	QString iconPath = QFileDialog::getOpenFileName(this);
	if (iconPath.isEmpty())return;
	data << iconPath;
	int row = model->rowCount();
	setItem(row, iconPath);
}

void Qtpix::pbt_view() {
	int row = sender()->property("row").toInt();
	QString iconPath = QFileDialog::getOpenFileName(this);
	QStandardItem *item = new QStandardItem();
	item->setIcon(QIcon(iconPath));
	model->setItem(row, 0, item);
	QStandardItem *item2 = new QStandardItem();
	item2->setText(iconPath);
	model->setItem(row, 1, item2);
}
void Qtpix::on_open_clicked() {
	QFile file("file.data");
	file.open(QIODevice::ReadOnly);
	QDataStream in(&file);
	in >> data;
	for (auto& iconPath : data) {
		int row = model->rowCount();
		setItem(row, iconPath);
	}
}
void Qtpix::on_save_clicked() {
	QFile file("file.data");
	file.open(QIODevice::WriteOnly);
	QDataStream out(&file);
	out << data;
}

void Qtpix::setItem(int row, const QString & filePath)
{
	QStandardItem *item = new QStandardItem();
	item->setIcon(QIcon(filePath));
	model->setItem(row, 0, item);
	QStandardItem *item2 = new QStandardItem();
	item2->setText(filePath);
	model->setItem(row, 1, item2);
	QPushButton *pbt = new QPushButton("选择");
	ui.tableView->setIndexWidget(model->index(row, 2), pbt);
	pbt->setProperty("row", row);
	connect(pbt, &QPushButton::clicked, this, &Qtpix::pbt_view);
}

#pragma once

#include <QtWidgets/QMainWindow>
#include "ui_Qtpix.h"
#include<qstandarditemmodel.h>

class Qtpix : public QMainWindow
{
	Q_OBJECT

public:
	Qtpix(QWidget *parent = Q_NULLPTR);
	QStandardItemModel *model;
private:
	Ui::QtpixClass ui;
	
private slots:
	void pbt_view();
	void on_add_clicked();
	void on_open_clicked();
	void on_save_clicked();
private:
	void setItem(int row, const QString& filePath);
private:
	QStringList data;
};

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值