Pergunta

Eu criei o seguinte formulário com o QT Designer. Adicionei um botão Adicionar arquivos que funciona com QDIR e QFILEDALOG e carrega arquivos em um listwidget.

alt text

Aqui estão meus métodos que preenchem este formulário com os arquivos.

void RightDoneIt::changeDirectory()
{
/* select a directory using file dialog */
    QString path = QFileDialog::getExistingDirectory (this, tr("Directory"), directory.path());
    if ( path.isNull() == false )
    {
        directory.setPath(path);
        fillList();
    }
}


/*get list of file from given directory and the append it to listWidget */
void RightDoneIt::fillList()
{
    ui->listWidget->clear();
    ui->listWidget->addItems(directory.entryList());



}

Gostaria de modificar meu código para poder listar o local do arquivo e o tamanho do arquivo ao lado do nome do arquivo e também para tornar este o botão Remover arquivos funcionando.

Eu só quero poder escolher arquivos usando a tecla Ctrl ou comando (para Macs) e pressionar Excluir para remover esses arquivos da minha lista.

Tenho que usar um QtreeWidget em vez de listwidget?

Quais são as melhores práticas para fazer isso?

Alguma sugestão de código?

Obrigado a todos!

Foi útil?

Solução

Se você está apenas listando arquivos (nenhuma estrutura de pasta e subpasta), você não precisa de um QTreeWidget.

Mas como você está disposto a mostrar a localização e o tamanho do arquivo, eu usaria um QTableWidget (ou QTableView).

No entanto, eu sugeriria dar uma olhada QFileSystemModel. Dependendo do que você está tentando fazer com seu aplicativo, essa classe pode ser útil: você pode usar esse modelo e exibi -lo em um widget de exibição.

E QFileSystemModel vem com métodos como remover() e também lidará com a renomeação de arquivos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top