更改 Qt 中的主窗口标题
Posted
技术标签:
【中文标题】更改 Qt 中的主窗口标题【英文标题】:Change main window title in Qt 【发布时间】:2015-10-22 01:24:21 【问题描述】:我正在使用 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);
【问题讨论】:
【参考方案1】:我格式化了您的代码并添加了显示正确文件名所需的代码,包括扩展名和不包括路径。
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()
的文档。
【讨论】:
【参考方案2】:QFileInfo fileInfo(file1);
QString filename(fileInfo.fileName());
【讨论】:
作为一个简短的说明:您的答案是 100% 正确并解决了问题。我使用与您相同的解决方案发布了自己的答案,因为我不喜欢只有代码的答案,甚至没有文档链接,这不是我的风格。不过,我给了你一个 +1,因为从技术上讲,你的答案是正确的。 @Mailerdaimon 是的,这就是我删除评论的原因。以上是关于更改 Qt 中的主窗口标题的主要内容,如果未能解决你的问题,请参考以下文章