1. 程式人生 > >QT中獲得開啟檔案的名字

QT中獲得開啟檔案的名字

void TxtEditMainWindow::openFileSlot()
{

    QString fileName = QFileDialog::getOpenFileName(this, "open file", QDir::currentPath());

    /*** 如果是空檔案 */
    if(fileName.isEmpty())
    {
        QMessageBox::information(this,"Warning Message!","Please select a file");
        return;
    }

    /*** 新建一個檔案 */
    QFile *file = new QFile;
    file->setFileName(fileName);

    /*** 設定該Windows的視窗的名字和檔案的名字一樣 */

    <span style="color:#ff0000;">/*** 獲取這個檔案的所有資訊 */
    QFileInfo fileInfo(*file);
    qDebug() << fileInfo.filePath();

    /*** fileInfo.fileName()是這個檔案的名字 */
    this->setWindowTitle(fileInfo.fileName());</span>

    /*** 設定許可權 **/
    bool ok = file->open(QIODevice::ReadWrite);

    /*** 如果開啟成功 **/
    if(ok)
    {
        QTextStream in(file);
        ui->textEdit->setFont(fontNow);
        ui->textEdit->setTextColor(colorNow);
        ui->textEdit->setText(in.readAll());

        /*** 關閉檔案,刪除file */
        file->close();
        delete file;
    }
    else
    {
        QMessageBox::information(this,"Error Message","Open file error" + file->errorString());
        return;
    }

}

用QT做文字編輯器,當我們開啟一個檔案,在獲得檔案內容的同時,也想讓文字編輯器的名字顯示為檔案的名字,下面是我處理的方法:

先了解一下#include <QFileInfo>類,這是它常用的一些成員函式

    QStringfilePath()const;  //檔案的路徑   E:/CODE/QTStudy/a.cpp
    QStringfileName()const;       //檔案的名字        a.cpp
QStringabsolutePath()const;//檔案的絕對路徑,E:/CODE/QTStudy