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.