#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;
};