Qt选择文件后获取路径并打开

qt菜鸟记录贴

包含头文件:

#include <QFile>
#include <QFileDialog>

代码:

//点击按钮后打开文件选择
void MainWindow::on_pushButton_clicked()
{
    //打开文件选择控件
    QString fileName;
    fileName = QFileDialog::getOpenFileName(this,tr("文件"),"",tr("text(*.txt)"));
    //打开选择的txt文件并显示
    QFile file(fileName);
    file.open(QIODevice::ReadOnly | QIODevice::Text);
    QByteArray t = file.readAll();
    ui->Output->setText(QString(t));
    file.close();
}

效果:

点击前:《Qt选择文件后获取路径并打开》

点击后:《Qt选择文件后获取路径并打开》

文件输出:《Qt选择文件后获取路径并打开》

 

发现中文乱码,解决方案:

在默认情况下,Qt 以 Unicode 格式处理文本字符,因此,字符本身是不会有问题的。之所以出现乱码,原因在于 Qt 不知道将 Unicode 字符以何种方式显示出来。

加入头文件:#include <QTextCodec>

选择转换格式为GBK:QTextCodec *codec=QTextCodec::codecForName(“GBK”);

转换字符:QString str = codec->toUnicode((t));    //为输入字符串

最终代码:

//点击按钮后打开文件选择
void MainWindow::on_pushButton_clicked()
{
    //打开文件选择控件
    QString fileName;
    fileName = QFileDialog::getOpenFileName(this,tr("文件"),"",tr("text(*.txt)"));
    //打开选择的txt文件并显示
    QFile file(fileName);
    //GBK方式
    QTextCodec *codec=QTextCodec::codecForName("GBK");
    file.open(QIODevice::ReadOnly | QIODevice::Text);
    QByteArray t = file.readAll();
    //转换读取数据并显示
    QString str = codec->toUnicode((t));
    ui->FileOutput->setText(QString(str));
    file.close();
}

 

 

    原文作者:嵌入式从入门到入土
    原文地址: https://blog.csdn.net/weixin_47221359/article/details/111942755
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞