2017-02-20 11 views
0

에서 작동하지 않습니다이 내 다음 코드는 내가 (열 0) filetable에 아이콘을 추가하지만 열 0QT setColumnWidth이 qtablewidget

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

의 폭을 변경할 수 없습니다하지만 내 테이블보기이입니다 :

enter image description here

아이콘 사이에 텍스트 (열 1의 항목) (열 0의 항목)의 거리를 줄일 수있는 방법이 있나요?

UPDATE 1 :

나는 내 코드에 filesTable->resizeColumnsToContents();를 추가,하지만 내가 얻을 수있는 격차를 줄이기 위해 (INT 열)

답변

0

시도 resizeColumnToContents 가능한 한 많이 필요로 변화를하지 않습니다 그들 가까이에.

0

두 테이블을 한 테이블에 병합합니다. 그래서 테이블 크기를 수정하고 하나의 테이블에 병합해야합니다. 최종 테이블에서 setColumnWidth를 사용할 수 있습니다. 내가 여기에 시도 표본 크기,

fileNameItem->resize(100,100); 

icon_item->resize(50,100); 

filesTable->setColumnWidth(0,100); 

filesTable->setColumnWidth(1,50); 

이 시도 할 것이다 당신을 도와줍니다 ..