Всем доброе утро.
Есть такая задача, какие то графические картинки загружаются в QTableWidget, там в 3 слотбца разбиваются на нахвание файла, размер и тип файла.
После этого(вот тут уже загвоздка в понимании реализации) нужно вывести при выборе из списка файлов по одинарному или двойному клику на QLabel.
Как я понимаю дял начала нужно заблочить возможность ихменения в ячейках данных что выводятся, а потом через сигнал(наверное выделяется вся строка файла) уже передается файл на вывод.
Ниже все части кода приведены, посоветуйте пожалуйста.
Еще мало знаний в QT да и опыта в частности, надеюсь на понимание.
То есть пишу о тех вещах с которыми из за плохого знакомства с QT и самого опыта появилась проблема.
Заранее спасибо
//Сам лейбед на который будет выводится выбранная картинка
Код C++ (QT)
labelForPreview = new QLabel();
labelForPreview->setEnabled(false);
labelForPreview->setAlignment(Qt::AlignCenter);
labelForPreview->setFrameShape(QFrame::Box);
labelForPreview->setBackgroundRole(QPalette::Base);
labelForPreview->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
labelForPreview->setText("empty");
labelForPreview->setBackgroundRole(QPalette::Base);
labelForPreview->setScaledContents(true);
//Сам табличный виджет для файлов
Код C++ (QT)
fileTableWidget = new QTableWidget();
fileTableWidget->setColumnCount(3);
//fileTableWidget->setHorizontalHeaderLabels(QStringList("Mode"));
layoutFiles->addWidget(fileTableWidget);
//Слоты для загрузки файла и второй для загрузки из таблицы файла на лейбл(с ним сомнения в правильности)
Код C++ (QT)
connect(buttonAdd, SIGNAL(clicked()), this, SLOT(addImages()));
connect(fileTableWidget, SIGNAL(clicked(QModelIndex)), this, SLOT(imagePreview()));
//Ну реализация одного из слотов
Код C++ (QT)
void CLibrary::addImages()
{
files = QFileDialog::getOpenFileNames(this,
tr("Open Images"), "",
tr("Images (*.png *.xpm *.jpg);;"
"All Files (*)"));
if (!files.isEmpty())
{
foreach (QString fileName, files)
{
int row = fileTableWidget->rowCount();
fileTableWidget->setRowCount(row + 1);
QString imageName = QFileInfo(fileName).baseName();
QString imageSuff = QFileInfo(fileName).suffix();
int fileSize = QFileInfo(fileName).size();
QString imageSize;
if(fileSize <= 1024) {
imageSize = QString("%1 B").arg(fileSize);
} else
if(fileSize <= 1024 * 1024) {
imageSize = QString("%1 kiB").arg(fileSize / 1024);
} else
if(fileSize <= 1024 * 1024 * 1024) {
imageSize = QString("%1 MiB").arg(fileSize / (1024 * 1024));
}
QTableWidgetItem *item0 = new QTableWidgetItem(imageName);
QTableWidgetItem *item1 = new QTableWidgetItem(imageSize);
QTableWidgetItem *item2 = new QTableWidgetItem(imageSuff);
qDebug() << imageSize;
fileTableWidget->setItem(row, 0, item0);
fileTableWidget->setItem(row, 1, item1);
fileTableWidget->setItem(row, 2, item2);
}
}
}