0

这是我的以下代码,我向文件表(第 0 列)添加了一个图标,但我无法更改第 0 列的宽度

void Window::showFiles(const QStringList &files)
{
     int row=0 ;

    filesTable->clearContents();

    for (int i = 0; i < files.size(); ++i) {
        QTableWidgetItem *fileNameItem;
        QTableWidgetItem *icon_item = new QTableWidgetItem;//
        QIcon icon("myPATH/3.png");
        icon_item->setIcon(icon);
        QFile file(currentDir.absoluteFilePath(files[i]));
        qint64 size = QFileInfo(file).size();

        fileNameItem = new QTableWidgetItem(files[i]);
        fileNameItem->setFlags(fileNameItem->flags() ^ Qt::ItemIsEditable);


        filesTable->insertRow(i);
        filesTable->setItem(i, 0, icon_item);
        filesTable->setItem(i, 1, fileNameItem);
        filesTable->setColumnWidth(0,1);
        filesTable->resizeColumnsToContents();
        qDebug()<<"-***-"<<filesTable->columnWidth(0)<<endl;
        row++;
        if(filesTable->item(i,1)->text()==fileNameImg){
            filesTable->selectRow(i);
        }

    }
    filesFoundLabel->setText(tr("%1 file(s) found").arg(files.size()) +(" (Double click on a file to open it)"));
    filesFoundLabel->setWordWrap(true);
}

但我的表格视图是这样的:

在此处输入图像描述

有什么方法可以减少图标(第 0 列的项目)和文本(第 1 列的项目)之间的距离?

更新 1:

我添加filesTable->resizeColumnsToContents();到我的代码中,但它没有任何区别,我需要尽可能减少差距

4

2 回答 2

0

将两张表合并到一张表中。所以必须固定表格大小并合并到一个表格中。它可以在最终表格上使用 setColumnWidth 。我在这里尝试过的样本量,

fileNameItem->resize(100,100);

icon_item->resize(50,100);

filesTable->setColumnWidth(0,100);

filesTable->setColumnWidth(1,50);

这个尝试会帮助你..

于 2017-02-27T12:16:07.890 回答
0

尝试 resizeColumnToContents(int column) 让它们更接近。

于 2017-02-20T15:50:40.913 回答