如何在QTabWidget的新选项卡中创建新的QPlainTextEdit小部件?

时间:2014-05-26 07:58:46

标签: c++ qt widget qt4 qtabwidget

我正在开发一个多标签文本编辑器项目。我尝试在新标签中显示文本文件时遇到问题。 打开文本文件时,我希望程序使用新的QPlainTextEdit小部件在新选项卡中显示内容,并且不要查看旧选项卡及其内容。

我的问题: 当程序打开一个新的文本文件时,它将创建一个新选项卡并将其文本更改为文件名,但它会在第一个选项卡及其plainTextEdit小部件中显示文件内容。如何解决?

我的代码:

void MainWindow::on_btn_Open_triggered()
{
  FilePath = QFileDialog::getOpenFileName(this, "Open File", "./", "All Files(*.*)");
  QFile GetFile(FilePath);
  QFileInfo FileMetaData(FilePath);

  if (!GetFile.open(QIODevice::ReadOnly|QIODevice::Text))
  {
     QMessageBox::information(0, "ERROR", "Cannot open this file.");
  }
  else
  {
     int clickTimes = 1;
     QTextStream InputData(&GetFile);
     QPlainTextEdit *plainTextEdit = new QPlainTextEdit;
     ui->tabWidget->insertTab(clickTimes, plainTextEdit, FileMetaData.fileName());
     ui->tabWidget->setCurrentIndex(clickTimes);
     ui->plainTextEdit->setPlainText(InputData.readAll());
     clickTimes++;
  }
}

1 个答案:

答案 0 :(得分:0)

我认为,您需要替换

ui->plainTextEdit->setPlainText(InputData.readAll());

使用

plainTextEdit->setPlainText(InputData.readAll());