Ajuda QFileDialog



  • Ola pessoal do qt. Sou iniciante em qt e c++. E agradeceria muito se pudessem me ajudar. Criei uma pagina e coloquei um botão “browser ” para que o usuário possa achar um arquivo dentro do pc(segui um vídeo do youtube e as instruções aqui do site. O botão está funcionando).

    void pg1_file::on_browser_clicked()
    {
    QString file_b=QFileDialog::getOpenFileName(
    this,
    tr("Open File"),
    "/",
    "All files(.)"
    );

    Mas, dai não consegui ir pra frente.
    1)Preciso que apos o usuário ache o arquivo que ele quer, na mesma pagina do botão browser, em uma caixa de texto ao lado, apareça o nome e a localização do arquivo. Ex:. /home/usuario/teste.txt.

    2)Preciso de uma variável que armazene cada novo arquivo escolhido (nome e a localização dos arquivos).

    3)Que ao fim de cada escolha(o usuário só fara uma escolha por vez) e tendo aparecido o nome e o caminho do arquivo, surja um novo botão “browser” logo abaixo para uma nova escolha.

    Não sei se postei no lugar certo ou se aqui e só para postar contribuições (dicas de uso do QT).
    Se for o caso, peço desculpas.

    Mas agradeceria muito se pudessem me ajudar (Seja com o código ou indicando “o caminho das pedras”). Já estou a uns 3 dias procurando e tentando as soluções aqui do site na parte de Qfiledialog, mas não consegui fazer funcionar.



  • Olá,
    Uma possível forma de resolver o problema seria utilizar um QTableWidget para manter o registro dos arquivos já escolhidos.

    Após o usuário escolher cada arquivo no seu método, verifique se a QString file não é nula para ter certeza de que um arquivo foi escolhido. Então utilize a string para construir um QFileInfo, que permite que você acesse o nome e a pasta de um arquivo.

    Adicione as informações da pasta e do nome do arquivo obtido através do QFileInfo como QTableWidgetItem em novas linhas da tabela criada.

    Mais tarde posso construir um código de exemplo e postar aqui se você tiver dúvida. Dê uma lida na documentação das classes QFileInfo, QTableWidget, QTableWidgetItem e QFileDialog.

    Att,



  • Oi pessoal do qt.
    Obrigado Micdoug pelo retorno. Entrei em época de prova e também tinhas trabalhos, e acabei não voltando aqui. Mas continuei tentando e consegui resolver a minha primeira dúvida. Criei um plainTextEdit e declarei a variável para aparecer no plainTextEdit. Seque o código.

    @#include "dialog1.h"
    #include "ui_dialog1.h"
    #include <qfiledialog.h>
    #include <QProcess>

    Dialog1::Dialog1(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog1)
    {
    ui->setupUi(this);
    QString fileName;
    process = new QProcess(this);
    }

    Dialog1::~Dialog1()
    {
    delete ui;
    }

    void Dialog1::on_pushButton_clicked()
    {
    fileName = QFileDialog::getOpenFileName(this, tr("Open File"),
    "/",
    tr("all files (."));

    ui->plainTextEdit->appendPlainText(fileName);
    

    }
    @

    Estou lendo a documentação das classes que vc me indicou e tentando aplicar. Mas se pudesse passar um exemplo me ajudaria sobre maneira . Vou continuar tentando aqui. Obrigado pela ajuda e desculpe pela "sumida". Estou agora só com esse trabalho a concluir.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.