在Qt中更改主窗口标题

Change main window title in Qt

本文关键字:窗口标题 Qt      更新时间:2023-10-16

我正在Qt c++中制作文本编辑器,当我打开一个txt文件时,我想将标题更改为打开的文件的名称,我知道setWindowTitle("title go here")。我只能显示路径。下面是打开新文档的函数的一部分。

QString fileName = QFileDialog::getOpenFileName(
            this,
            "TextEditor - Open" ,
            "C:\",
            " Text File(*.txt);;All files (*.*)");
QFile file1(fileName);
    if((!fileName.isEmpty()))
     {
     currentFile = fileName;
     file1.open(QIODevice::ReadOnly|QIODevice::Text);
     QTextStream in(&file1);
     QString str1 = in.readAll();
     ui->plainTextEdit-> setPlainText(str1);
     file1.close();
     statusBar()-> showMessage(" File successfully loaded! ");
     saveRecent(currentFile);
     }
    setWindowTitle(currentFile);

我格式化了你的代码,并添加了显示正确文件名所需的代码,包括扩展名和排除路径。

QString fileName = QFileDialog::getOpenFileName(
            this,
            "TextEditor - Open" ,
            "C:\",
            " Text File(*.txt);;All files (*.*)");
QFile file1(fileName);
if(!fileName.isEmpty())
{
     currentFile = fileName;
     file1.open(QIODevice::ReadOnly|QIODevice::Text);
     QTextStream in(&file1);
     QString str1 = in.readAll();
     ui->plainTextEdit-> setPlainText(str1);
     file1.close();
     statusBar()-> showMessage(" File successfully loaded! ");
     saveRecent(currentFile);
 }
 // Create the FileInfo 
 QFileInfo file1Info(file1);
 // now get the fileName
 QString file1Name(file1Info.fileName());
 // Set the Title to the fileName
 setWindowTitle(file1Name);

参见QFileInfo.fileName()的文档

QFileInfo fileInfo(file1);
QString filename(fileInfo.fileName());