first commit
This commit is contained in:
+136
@@ -0,0 +1,136 @@
|
||||
#include "fsinglegrid.h"
|
||||
#include "ui_fsinglegrid.h"
|
||||
#include <QMessageBox>
|
||||
#include <QFileInfo>
|
||||
#include <QFileDialog>
|
||||
|
||||
FSingleGrid::FSingleGrid(QWidget *parent) :
|
||||
QWidget(parent),
|
||||
ui(new Ui::FSingleGrid)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
|
||||
}
|
||||
|
||||
FSingleGrid::~FSingleGrid()
|
||||
{
|
||||
delete ui;
|
||||
|
||||
|
||||
}
|
||||
|
||||
QTableWidget* FSingleGrid::tableWidget() const
|
||||
{
|
||||
return ui->sg;
|
||||
}
|
||||
|
||||
void FSingleGrid::initForm(QString aBlockName, QString aNewName, bool btnOpen)
|
||||
{
|
||||
ui->groupBox->setTitle(aBlockName);
|
||||
QStringList headers;
|
||||
headers << "Название" << "Файл";
|
||||
ui->sg->setHorizontalHeaderLabels(headers);
|
||||
ui->sg->setSelectionBehavior(QAbstractItemView::SelectRows); // Выделение строк
|
||||
ui->sg->setSelectionMode(QAbstractItemView::SingleSelection); // Одиночное выделение
|
||||
ui->sg->setEditTriggers(QAbstractItemView::NoEditTriggers);
|
||||
ui->sg->setColumnWidth(0, 100);
|
||||
ui->sg->setColumnWidth(1, 170);
|
||||
ui->sg->setObjectName(aNewName);
|
||||
ui->btnOpen->setVisible(btnOpen);
|
||||
|
||||
}
|
||||
|
||||
void FSingleGrid::toGrid(QString aName, QString aFile)
|
||||
{
|
||||
// Добавляем новую строку в таблицу
|
||||
int row = ui->sg->rowCount();
|
||||
ui->sg->insertRow(row);
|
||||
QTableWidgetItem *R1 = new QTableWidgetItem(aName);
|
||||
QTableWidgetItem *R2 = new QTableWidgetItem(aFile);
|
||||
ui->sg->setItem(row, 0, R1);
|
||||
ui->sg->setItem(row, 1, R2);
|
||||
ui->sg->scrollToBottom();
|
||||
}
|
||||
|
||||
void FSingleGrid::on_btnAdd_clicked()
|
||||
{
|
||||
toGrid(ui->edtName->text(), ui->edtFileName->text());
|
||||
db->SaveTableWidget(ui->sg);
|
||||
}
|
||||
|
||||
void FSingleGrid::setDatabase(uDataBase *database)
|
||||
{
|
||||
db = database;
|
||||
}
|
||||
|
||||
void FSingleGrid::on_btnDel_clicked()
|
||||
{
|
||||
// Проверяем, есть ли выделенная строка
|
||||
if (!ui->sg->currentItem()) {
|
||||
QMessageBox::warning(this, "Внимание", "Выберите строку для удаления!");
|
||||
return;
|
||||
}
|
||||
|
||||
// Получаем индекс выделенной строки
|
||||
int row = ui->sg->currentItem()->row();
|
||||
|
||||
// Удаляем строку
|
||||
ui->sg->removeRow(row);
|
||||
db->SaveTableWidget(ui->sg);
|
||||
}
|
||||
|
||||
|
||||
void FSingleGrid::on_btnEdt_clicked()
|
||||
{
|
||||
// Проверяем, есть ли выделенная строка
|
||||
if (!ui->sg->currentItem()) {
|
||||
QMessageBox::warning(this, "Внимание", "Выберите строку для редактирования!");
|
||||
return;
|
||||
}
|
||||
|
||||
// Получаем индекс выделенной строки
|
||||
int row = ui->sg->currentItem()->row();
|
||||
|
||||
// Получаем данные из выбранной строки
|
||||
ui->sg->item(row, 0)->setText(ui->edtName->text());
|
||||
ui->sg->item(row, 1)->setText(ui->edtFileName->text());
|
||||
db->SaveTableWidget(ui->sg);
|
||||
}
|
||||
|
||||
|
||||
void FSingleGrid::on_btnOpen_clicked()
|
||||
{
|
||||
// Диалог выбора файла
|
||||
QString fileName = QFileDialog::getOpenFileName(
|
||||
this, // родительское окно
|
||||
"Выберите файл", // заголовок окна
|
||||
QDir::homePath(), // начальная директория
|
||||
"Все файлы (*.*);;" // фильтры файлов
|
||||
"Текстовые файлы (*.txt);;"
|
||||
"Аудио (*.mp3);;"
|
||||
"Приложения (*.exe *.bat *.cmd)"
|
||||
);
|
||||
|
||||
// Если файл выбран (не нажата кнопка "Отмена")
|
||||
if (!fileName.isEmpty()) {
|
||||
// Записываем путь к файлу в поле ввода
|
||||
ui->edtFileName->setText(fileName);
|
||||
|
||||
// Опционально: автоматически заполняем поле имени из названия файла
|
||||
if (ui->edtName->text().isEmpty()) {
|
||||
QFileInfo fileInfo(fileName);
|
||||
QString baseName = fileInfo.baseName(); // Имя файла без расширения
|
||||
ui->edtName->setText(baseName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void FSingleGrid::on_sg_cellClicked(int row, int column)
|
||||
{
|
||||
ui->edtName->setText(ui->sg->item(row,0)->text());
|
||||
ui->edtFileName->setText(ui->sg->item(row,1)->text());
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user